﻿<?xml version="1.0"?>
<doc>
  <assembly>
    <name>Neovolve.Toolkit</name>
  </assembly>
  <members>
    <member name="T:Neovolve.Toolkit.Communication.Security.PasswordPrincipal">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordPrincipal" />
              class provides information about the roles available to the <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordIdentity" /> that it exposes.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.Security.PasswordPrincipal.#ctor(System.Security.Principal.IIdentity,System.String[])">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordPrincipal" /> class.
            </summary>
      <param name="identity">
            The identity.
            </param>
      <param name="roles">
            The roles.
            </param>
    </member>
    <member name="T:Neovolve.Toolkit.Communication.ErrorHandlerAttribute">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Communication.ErrorHandlerAttribute" />
              class is used to decorate WCF service implementations with a 
              <see cref="T:System.ServiceModel.Description.IServiceBehavior" /> that identifies <see cref="T:System.ServiceModel.Dispatcher.IErrorHandler" /> references to invoke
              when the service encounters errors.
            </summary>
      <remarks>
        <para>
          <see cref="T:System.ServiceModel.Dispatcher.IErrorHandler" /> implementations are often set up for services using configuration.
                This may create risks in cases where configuration is not correctly defined or configuration values are missing.
                The result of this may be that exception shielding and error handling are not functioning as intended.
              </para>
        <para>
            Lack of exception shielding may be a security risk because exception information crosses the service boundary
                that was not intended. The details of the exception may contain sensitive information that the consumers of
                the services should not be able to read.
              </para>
        <para>
            Lack of error handling may not be a security risk, but will produce an unexpected behaviour for clients as 
                they consume the service. According to the contract, the client may expect to see a particular fault exception
                being raised, but may instead receive a different fault.
              </para>
        <note>
            The constructor overloads that accept a <c>params</c> array are not CLS compliant. Usage of attributes that use array arguments
                breaks CLS compliance. These methods have been appropriately marked as not being CLS compliant.
              </note>
        <para>
            The constructor of the attribute instance either takes a single type or string, or a <c>params</c> array of strings or types.
                This allows for a single error handler to be assigned in a CLS compliant way, or multiple error handlers to be assigned
                in a non-CLS compliant way.
              </para>
      </remarks>
      <example>
            The following example demonstrates how to use this attribute on a service implementation.
              <code lang="C#"><![CDATA[
              // In this case, the ErrorHandler attribute is used to assign single error handler
              [ErrorHandler(typeof(KnownErrorHandler))]
              public class TestService : ITestService
              {
              } 
            
              // In this case, the ErrorHandler attribute is used to assign multiple error handlers
              // Note: Passing multiple handlers is not CLS compliant
              [CLSCompliant(false)]
              [ErrorHandler(typeof(KnownErrorHandler), 
                  typeof(UnknownErrorHandler), 
                  typeof(AnotherErrorHandler), 
                  typeof(YetAnotherErrorHandler))]
              public class AnotherTestService : ITestService
              {
              } 
            ]]></code></example>
      <seealso cref="T:Neovolve.Toolkit.Communication.ErrorHandlerElement" />
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ErrorHandlerAttribute.#ctor(System.Type)">
      <overloads>
        <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Communication.ErrorHandlerAttribute" /> class.
              </summary>
      </overloads>
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Communication.ErrorHandlerAttribute" /> class using the provided error handler type.
            </summary>
      <param name="errorHandler">
            Type of the error handler.
            </param>
      <remarks>
        <para>
        This constructor overload is provided for scenarios where only one value is provided and CLS compliance is required.
        Using attributes that take array parameters is not CLS compliant.
      </para>
      </remarks>
      <exception cref="T:System.ArgumentNullException">
        The
        <paramref name="errorHandler" />
        value is
        <c>null</c>
        .
      </exception>
      <exception cref="T:System.InvalidCastException">
        An error handler type provided does not implement
        <see cref="T:System.ServiceModel.Dispatcher.IErrorHandler" />
        .
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ErrorHandlerAttribute.#ctor(System.Type,System.Type)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Communication.ErrorHandlerAttribute" /> class using the provided error handler types.
            </summary>
      <param name="firstErrorHandler">
            The first error handler.
            </param>
      <param name="secondErrorHandler">
            The second error handler.
            </param>
      <remarks>
        <para>
        This constructor overload is provided for scenarios where only one value is provided and CLS compliance is required.
        Using attributes that take array parameters is not CLS compliant.
      </para>
      </remarks>
      <exception cref="T:System.ArgumentNullException">
        The
        <paramref name="firstErrorHandler" />
        value is
        <c>null</c>
        .
      </exception>
      <exception cref="T:System.ArgumentNullException">
        The
        <paramref name="secondErrorHandler" />
        value is
        <c>null</c>
        .
      </exception>
      <exception cref="T:System.ArgumentException">A duplicate error handler type has been provided.</exception>
      <exception cref="T:System.InvalidCastException">
        An error handler type provided does not implement
        <see cref="T:System.ServiceModel.Dispatcher.IErrorHandler" />
        .
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ErrorHandlerAttribute.#ctor(System.Type,System.Type,System.Type)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Communication.ErrorHandlerAttribute" /> class using the provided error handler types.
            </summary>
      <param name="firstErrorHandler">
            The first error handler.
            </param>
      <param name="secondErrorHandler">
            The second error handler.
            </param>
      <param name="thirdErrorHandler">
            The third error handler.
            </param>
      <remarks>
        <para>
        This constructor overload is provided for scenarios where only one value is provided and CLS compliance is required.
        Using attributes that take array parameters is not CLS compliant.
      </para>
      </remarks>
      <exception cref="T:System.ArgumentNullException">
        The
        <paramref name="firstErrorHandler" />
        value is
        <c>null</c>
        .
      </exception>
      <exception cref="T:System.ArgumentNullException">
        The
        <paramref name="secondErrorHandler" />
        value is
        <c>null</c>
        .
      </exception>
      <exception cref="T:System.ArgumentNullException">
        The
        <paramref name="thirdErrorHandler" />
        value is
        <c>null</c>
        .
      </exception>
      <exception cref="T:System.ArgumentException">A duplicate error handler type has been provided.</exception>
      <exception cref="T:System.InvalidCastException">
        An error handler type provided does not implement
        <see cref="T:System.ServiceModel.Dispatcher.IErrorHandler" />
        .
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ErrorHandlerAttribute.#ctor(System.Type[])">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Communication.ErrorHandlerAttribute" /> class using the provided error handler types.
            </summary>
      <param name="errorHandlerTypes">
            The error handler types.
            </param>
      <remarks>
        <para>This method is not CLS Compliant.</para>
      </remarks>
      <exception cref="T:System.ArgumentNullException">
        The
        <paramref name="errorHandlerTypes" />
        value is
        <c>null</c>
        or one of the entries in the array is
        <c>null</c>
        .
      </exception>
      <exception cref="T:System.ArgumentOutOfRangeException">
        The
        <paramref name="errorHandlerTypes" />
        value is
        <c>empty</c>
        .
      </exception>
      <exception cref="T:System.ArgumentException">A duplicate error handler type has been provided.</exception>
      <exception cref="T:System.InvalidCastException">
        An error handler type provided does not implement
        <see cref="T:System.ServiceModel.Dispatcher.IErrorHandler" />
        .
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ErrorHandlerAttribute.#ctor(System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Communication.ErrorHandlerAttribute" /> class using the provided error handler type name.
            </summary>
      <param name="errorHandlerTypeName">
            Name of the error handler type.
            </param>
      <remarks>
        <para>
        This constructor overload is provided for scenarios where only one value is provided and CLS compliance is required.
        Using attributes that take array parameters is not CLS compliant.
      </para>
      </remarks>
      <exception cref="T:System.ArgumentNullException">
        The
        <paramref name="errorHandlerTypeName" />
        value is
        <c>null</c>
        or is
        <see cref="F:System.String.Empty">String.Empty</see>
        .
      </exception>
      <exception cref="T:System.TypeLoadException">An error handler type name provided was not able to be loaded.</exception>
      <exception cref="T:System.InvalidCastException">
        An error handler type provided does not implement
        <see cref="T:System.ServiceModel.Dispatcher.IErrorHandler" />
        .
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ErrorHandlerAttribute.#ctor(System.String,System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Communication.ErrorHandlerAttribute" /> class using the provided error handler type names.
            </summary>
      <param name="firstErrorHandlerTypeName">
            Name of the first error handler type.
            </param>
      <param name="secondErrorHandlerTypeName">
            Name of the second error handler type.
            </param>
      <remarks>
        <para>
        This constructor overload is provided for scenarios where only one value is provided and CLS compliance is required.
        Using attributes that take array parameters is not CLS compliant.
      </para>
      </remarks>
      <exception cref="T:System.ArgumentNullException">
        The
        <paramref name="firstErrorHandlerTypeName" />
        value is
        <c>null</c>
        or is
        <see cref="F:System.String.Empty">String.Empty</see>
        .
      </exception>
      <exception cref="T:System.ArgumentNullException">
        The
        <paramref name="secondErrorHandlerTypeName" />
        value is
        <c>null</c>
        or is
        <see cref="F:System.String.Empty">String.Empty</see>
        .
      </exception>
      <exception cref="T:System.TypeLoadException">An error handler type name provided was not able to be loaded.</exception>
      <exception cref="T:System.ArgumentException">A duplicate error handler type has been provided.</exception>
      <exception cref="T:System.InvalidCastException">
        An error handler type provided does not implement
        <see cref="T:System.ServiceModel.Dispatcher.IErrorHandler" />
        .
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ErrorHandlerAttribute.#ctor(System.String,System.String,System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Communication.ErrorHandlerAttribute" /> class using the provided error handler type names.
            </summary>
      <param name="firstErrorHandlerTypeName">
            Name of the first error handler type.
            </param>
      <param name="secondErrorHandlerTypeName">
            Name of the second error handler type.
            </param>
      <param name="thirdErrorHandlerTypeName">
            Name of the third error handler type.
            </param>
      <remarks>
        <para>
        This constructor overload is provided for scenarios where only one value is provided and CLS compliance is required.
        Using attributes that take array parameters is not CLS compliant.
      </para>
      </remarks>
      <exception cref="T:System.ArgumentNullException">
        The
        <paramref name="firstErrorHandlerTypeName" />
        value is
        <c>null</c>
        or is
        <see cref="F:System.String.Empty">String.Empty</see>
        .
      </exception>
      <exception cref="T:System.ArgumentNullException">
        The
        <paramref name="secondErrorHandlerTypeName" />
        value is
        <c>null</c>
        or is
        <see cref="F:System.String.Empty">String.Empty</see>
        .
      </exception>
      <exception cref="T:System.ArgumentNullException">
        The
        <paramref name="thirdErrorHandlerTypeName" />
        value is
        <c>null</c>
        or is
        <see cref="F:System.String.Empty">String.Empty</see>
        .
      </exception>
      <exception cref="T:System.TypeLoadException">An error handler type name provided was not able to be loaded.</exception>
      <exception cref="T:System.ArgumentException">A duplicate error handler type has been provided.</exception>
      <exception cref="T:System.InvalidCastException">
        An error handler type provided does not implement
        <see cref="T:System.ServiceModel.Dispatcher.IErrorHandler" />
        .
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ErrorHandlerAttribute.#ctor(System.String[])">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Communication.ErrorHandlerAttribute" /> class using the provided error handler type names.
            </summary>
      <param name="errorHandlerTypeNames">
            The error handler type names.
            </param>
      <remarks>
        <para>This method is not CLS Compliant.</para>
      </remarks>
      <exception cref="T:System.ArgumentNullException">
        The
        <paramref name="errorHandlerTypeNames" />
        value or one of the entries in the array is
        <c>null</c>
        or is
        <see cref="F:System.String.Empty">String.Empty</see>
        .
      </exception>
      <exception cref="T:System.ArgumentOutOfRangeException">
        The
        <paramref name="errorHandlerTypeNames" />
        value is
        <c>empty</c>
        .
      </exception>
      <exception cref="T:System.ArgumentException">A duplicate error handler type has been provided.</exception>
      <exception cref="T:System.InvalidCastException">
        An error handler type provided does not implement
        <see cref="T:System.ServiceModel.Dispatcher.IErrorHandler" />
        .
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ErrorHandlerAttribute.AddBindingParameters(System.ServiceModel.Description.ServiceDescription,System.ServiceModel.ServiceHostBase,System.Collections.ObjectModel.Collection{System.ServiceModel.Description.ServiceEndpoint},System.ServiceModel.Channels.BindingParameterCollection)">
      <summary>
            Provides the ability to pass custom data to binding elements to support the contract implementation.
            </summary>
      <param name="serviceDescription">
            The service description of the service.
            </param>
      <param name="serviceHostBase">
            The host of the service.
            </param>
      <param name="endpoints">
            The service endpoints.
            </param>
      <param name="bindingParameters">
            Custom objects to which binding elements have access.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ErrorHandlerAttribute.ApplyDispatchBehavior(System.ServiceModel.Description.ServiceDescription,System.ServiceModel.ServiceHostBase)">
      <summary>
            Provides the ability to change run-time property values or insert custom extension objects such as error handlers, message or parameter interceptors, security extensions, and other custom extension objects.
            </summary>
      <param name="serviceDescription">
            The service description.
            </param>
      <param name="serviceHostBase">
            The host that is currently being built.
            </param>
      <exception cref="T:System.ArgumentNullException">
            The <paramref name="serviceHostBase" /> value is <c>null</c>.
            </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ErrorHandlerAttribute.Validate(System.ServiceModel.Description.ServiceDescription,System.ServiceModel.ServiceHostBase)">
      <summary>
            Provides the ability to inspect the service host and the service description to confirm that the service can run successfully.
            </summary>
      <param name="serviceDescription">
            The service description.
            </param>
      <param name="serviceHostBase">
            The service host that is currently being constructed.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ErrorHandlerAttribute.Initialize(System.Type[])">
      <summary>
            Initializes the specified error handler types.
            </summary>
      <param name="errorHandlerTypes">
            The error handler types.
            </param>
      <exception cref="T:System.ArgumentNullException">
        The
        <paramref name="errorHandlerTypes" />
        value is
        <c>null</c>
        or one of the entries in the array is
        <c>null</c>
        .
      </exception>
      <exception cref="T:System.ArgumentOutOfRangeException">
        The
        <paramref name="errorHandlerTypes" />
        value is
        <c>empty</c>
        .
      </exception>
      <exception cref="T:System.ArgumentException">A duplicate error handler type has been provided.</exception>
      <exception cref="T:System.InvalidCastException">
        An error handler type provided does not implement
        <see cref="T:System.ServiceModel.Dispatcher.IErrorHandler" />
        .
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ErrorHandlerAttribute.Initialize(System.String[])">
      <summary>
            Initializes the specified error handler type names.
            </summary>
      <param name="errorHandlerTypeNames">
            The error handler type names.
            </param>
      <exception cref="T:System.ArgumentNullException">
        The
        <paramref name="errorHandlerTypeNames" />
        value or one of the entries in the array is
        <c>null</c>
        or is
        <see cref="F:System.String.Empty">String.Empty</see>
        .
      </exception>
      <exception cref="T:System.ArgumentOutOfRangeException">
        The
        <paramref name="errorHandlerTypeNames" />
        value is
        <c>empty</c>
        .
      </exception>
    </member>
    <member name="P:Neovolve.Toolkit.Communication.ErrorHandlerAttribute.ErrorHandlerTypes">
      <summary>
            Gets the error handler types.
            </summary>
      <value>
            The error handler types.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Instrumentation.TraceSourceLoadException">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Instrumentation.TraceSourceLoadException" />
              class is used to identify scenarios where a 
              <see cref="T:System.Diagnostics.TraceSource" /> is not retrieved for use by a
              <see cref="T:Neovolve.Toolkit.Instrumentation.RecordTrace" /> instance.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.TraceSourceLoadException.#ctor">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.TraceSourceLoadException" /> class.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.TraceSourceLoadException.#ctor(System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.TraceSourceLoadException" /> class.
            </summary>
      <param name="message">
            The message.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.TraceSourceLoadException.#ctor(System.String,System.Exception)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.TraceSourceLoadException" /> class.
            </summary>
      <param name="message">
            The message.
            </param>
      <param name="inner">
            The inner.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.TraceSourceLoadException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.TraceSourceLoadException" /> class.
            </summary>
      <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo" /> that holds the serialized object data about the exception being thrown.
            </param>
      <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext" /> that contains contextual information about the source or destination.
            </param>
      <exception cref="T:System.ArgumentNullException">
            The <paramref name="info" /> parameter is null.
            </exception>
      <exception cref="T:System.Runtime.Serialization.SerializationException">
            The class name is null or <see cref="P:System.Exception.HResult" /> is zero (0).
            </exception>
    </member>
    <member name="T:Neovolve.Toolkit.Communication.Security.PasswordServiceCredentials">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordServiceCredentials" />
              class provides a username password security implementation for WCF services. It will generate a
              <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordPrincipal" /> containing a <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordIdentity" />
              that exposes the password of the client credentials.
            </summary>
      <remarks>
        <para>
          <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordServiceCredentials" /> adds a custom <see cref="T:System.IdentityModel.Policy.IAuthorizationPolicy" /> to the service
                that creates a <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordPrincipal" /> and <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordIdentity" /> for the service security context.
                The new principal is available via <see cref="P:System.ServiceModel.ServiceSecurityContext.PrimaryIdentity">ServiceSecurityContext.PrimaryIdentity</see>. 
                The <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordPrincipal" /> is also available via <see cref="P:System.Threading.Thread.CurrentPrincipal">Thread.CurrentPrincipal</see>
                if UserNamePasswordValidationMode in configuration is set to custom (see example below).
              </para>
        <note>
            The <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordPrincipal" /> instance is created using <c>null</c> for the roles of the principal.
            </note>
        <para>
            The <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordServiceCredentials" /> is configured with the following:
                <list type="bullet"><item><description>
                      Set type to the <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordServiceCredentials" /> class in the serviceCredentials element. 
                    </description></item><item><description>
                      Set userNamePasswordValidationMode to Custom in the userNameAuthentication element to use custom authentication rather
                      than Windows authentication. 
                    </description></item><item><description>
                      Set principalPermissionMode to Custom in the serviceAuthorization element to assign <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordPrincipal" /> to 
                      <see cref="P:System.Threading.Thread.CurrentPrincipal">Thread.CurrentPrincipal</see>.
                    </description></item><item><description>
                      Set the customUserNamePasswordValidatorType in the userNameAuthentication element as required.
                    </description></item></list></para>
        <note>
            The <see cref="T:Neovolve.Toolkit.Communication.Security.DefaultPasswordValidator" /> is used if no customUserNamePasswordValidatorType is configured.
            </note>
        <para>
            WCF enforces protection of the password in transmission using transport security. 
                The security mode should be set to TransportWithMessageCredentials with a message client credential type as UserName.
              </para>
      </remarks>
      <example>
        <code lang="xml" title="Configuration"><![CDATA[<?xml version="1.0" encoding="utf-8" ?> 
            <configuration> 
              <system.serviceModel> 
                <bindings> 
                  <netTcpBinding> 
                    <binding name="netTcpBindingConfig"> 
                      <security mode="TransportWithMessageCredential"> 
                        <message clientCredentialType="UserName"/> 
                      </security> 
                    </binding> 
                  </netTcpBinding> 
                </bindings> 
                <services> 
                  <service behaviorConfiguration="Neovolve.Toolkit.Communication.SecurityTest.Service1Behavior" 
                    name="Neovolve.Toolkit.Communication.SecurityHost.Service1"> 
                    <endpoint address="net.tcp://localhost:8792/PasswordSecurityTest" 
                      binding="netTcpBinding" bindingConfiguration="netTcpBindingConfig" 
                      contract="Neovolve.Toolkit.Communication.SecurityHost.IService1"/> 
                  </service> 
                </services> 
                <behaviors> 
                  <serviceBehaviors> 
                    <behavior name="Neovolve.Toolkit.Communication.SecurityTest.Service1Behavior"> 
                      <serviceDebug includeExceptionDetailInFaults="true"/> 
                      <serviceCredentials type="Neovolve.Toolkit.Communication.Security.PasswordServiceCredentials, Neovolve.Toolkit.Communication.Security"> 
                        <serviceCertificate findValue="localhost" x509FindType="FindBySubjectName"/> 
                        <userNameAuthentication userNamePasswordValidationMode="Custom"
                          customUserNamePasswordValidatorType="Neovolve.Toolkit.Communication.Security.OptionalPasswordValidator, Neovolve.Toolkit.Communication.Security"/> 
                      </serviceCredentials> 
                      <serviceAuthorization principalPermissionMode="Custom"/> 
                    </behavior> 
                  </serviceBehaviors> 
                </behaviors> 
              </system.serviceModel> 
            </configuration>]]></code>
      </example>
      <seealso cref="T:System.ServiceModel.ServiceSecurityContext" />
    </member>
    <member name="M:Neovolve.Toolkit.Communication.Security.PasswordServiceCredentials.#ctor">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordServiceCredentials" /> class.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.Security.PasswordServiceCredentials.#ctor(System.ServiceModel.Description.ServiceCredentials)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordServiceCredentials" /> class.
            </summary>
      <param name="clone">
            The clone.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.Security.PasswordServiceCredentials.CreateSecurityTokenManager">
      <summary>
            Creates a token manager for this service.
            </summary>
      <returns>
            A <see cref="T:System.ServiceModel.Security.ServiceCredentialsSecurityTokenManager" /> instance.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.Security.PasswordServiceCredentials.CloneCore">
      <summary>
            Copies the essential members of the current instance.
            </summary>
      <returns>
            A <see cref="T:System.ServiceModel.Description.ServiceCredentials" /> instance.
            </returns>
    </member>
    <member name="T:Neovolve.Toolkit.Reflection.MethodCacheKey">
      <summary>
              The <see cref="T:Neovolve.Toolkit.Reflection.MethodCacheKey" />
              struct is used to describe a method for referencing method information in a cache.
            </summary>
      <invariant>ParameterTypes != null</invariant>
    </member>
    <member name="M:Neovolve.Toolkit.Reflection.MethodCacheKey.#ctor(System.Type,System.String,System.Type[])">
      <summary>
              Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Reflection.MethodCacheKey" /> struct.
            </summary>
      <param name="declaringType">
              Type of the declaring.
            </param>
      <param name="methodName">
              Name of the method.
            </param>
      <param name="parameterTypes">
              The parameter types.
            </param>
      <requires description="The declaringType value is null." exception="T:System.ArgumentNullException">declaringType != null</requires>
      <exception cref="T:System.ArgumentNullException">declaringType == null</exception>
      <requires description="The methodName value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(methodName) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(methodName) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Reflection.MethodCacheKey.ToString">
      <summary>
              Returns a description of the method signature.
            </summary>
      <returns>
              A <see cref="T:System.String" /> containing a description of the method signature.
            </returns>
      <ensures>String.IsNullOrWhiteSpace(Contract.Result&lt;String&gt;()) == false</ensures>
      <ensures inheritedFrom="M:System.Object.ToString" inheritedFromTypeName="Object">Contract.Result&lt;string&gt;() != null</ensures>
    </member>
    <member name="M:Neovolve.Toolkit.Reflection.MethodCacheKey.ObjectInvariant">
      <summary>
              Objects the invariant.
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Reflection.MethodCacheKey.DeclaringType">
      <summary>
              Gets or sets the type of the declaring.
            </summary>
      <value>
              The type of the declaring.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Reflection.MethodCacheKey.MethodName">
      <summary>
              Gets or sets the name of the method.
            </summary>
      <value>
              The name of the method.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Reflection.MethodCacheKey.ParameterTypes">
      <summary>
              Gets or sets the parameter types.
            </summary>
      <value>
              The parameter types.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Instrumentation.IRecordWriter">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Instrumentation.IRecordWriter" />
              interface defines the methods for writing instrumentation records.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.IRecordWriter.Flush">
      <summary>
            Flushes this instance.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.IRecordWriter.Write(Neovolve.Toolkit.Instrumentation.RecordType,System.String,System.Object[])">
      <summary>
            Writes the specified message and type.
            </summary>
      <param name="type">
            The type of message.
            </param>
      <param name="message">
            The message content.
            </param>
      <param name="arguments">
            The arguments related to the message.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.IRecordWriter.Write(Neovolve.Toolkit.Instrumentation.RecordType,System.Exception)">
      <summary>
            Writes the specified exception and type.
            </summary>
      <param name="type">
            The type of message.
            </param>
      <param name="exception">
            The exception.
            </param>
    </member>
    <member name="T:Neovolve.Toolkit.Instrumentation.CacheResolver">
      <summary>
              The <see cref="T:Neovolve.Toolkit.Instrumentation.CacheResolver" />
              class is used to cache a set of 
              <see cref="T:System.Diagnostics.TraceSource" /> instances.
            </summary>
    </member>
    <member name="T:Neovolve.Toolkit.Instrumentation.ITraceSourceResolver">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Instrumentation.ITraceSourceResolver" />
              interface is used to resolve a collection of
              <see cref="T:System.Diagnostics.TraceSource" /> instances.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ITraceSourceResolver.Reload">
      <summary>
            Reloads the <see cref="T:System.Diagnostics.TraceSource" /> names and instances available from the resolver.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ITraceSourceResolver.Resolve(System.String,System.StringComparison)">
      <summary>
            Resolves a <see cref="T:System.Diagnostics.TraceSource" /> using the specified name and string comparison.
            </summary>
      <param name="name">
            The name of the <see cref="T:System.Diagnostics.TraceSource" />.
            </param>
      <param name="comparison">
            The string comparison to apply.
            </param>
      <returns>
            A <see cref="T:System.Diagnostics.TraceSource" /> instance or <c>null</c> if the name is not found.
            </returns>
      <requires description="The name value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(name) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(name) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ITraceSourceResolver.ResolveNames">
      <summary>
            Resolves the available <see cref="T:System.Diagnostics.TraceSource" /> names.
            </summary>
      <returns>
            A <see cref="T:System.Collections.ObjectModel.Collection`1" /> instance.
            </returns>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.ITraceSourceResolver.ChildResolver">
      <summary>
            Gets the child resolver.
            </summary>
      <value>
            The child resolver or <c>null</c> if there is no child resolver.
            </value>
    </member>
    <member name="F:Neovolve.Toolkit.Instrumentation.CacheResolver.TraceSourceCacheExpiryDefaultLength">
      <summary>
              Defines the default cache expiry length for <see cref="T:System.Diagnostics.TraceSource" /> instances.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Instrumentation.CacheResolver.TraceSourceCacheExpiryLengthKey">
      <summary>
              Defines the configuration key used to load the value for the <see cref="P:Neovolve.Toolkit.Instrumentation.CacheResolver.TraceSourceCacheExpiryLength" /> property.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Instrumentation.CacheResolver.TraceSourceNameCacheExpiryDefaultLength">
      <summary>
              Defines the default cache expiry length for trace source names.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Instrumentation.CacheResolver.TraceSourceNameCacheExpiryLengthKey">
      <summary>
              Defines  the configuration key used to load the value for the <see cref="P:Neovolve.Toolkit.Instrumentation.CacheResolver.TraceSourceNameCacheExpiryLength" /> property.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Instrumentation.CacheResolver.TraceSourceCacheKeyPrefix">
      <summary>
              Defines the cache key prefix used to avoid cache key collisions.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Instrumentation.CacheResolver.TraceSourceNamesCacheKeyPrefix">
      <summary>
              Defines the cache key used to store the list of trace source names.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Instrumentation.CacheResolver._cacheStore">
      <summary>
              Stores the cache used to store <see cref="T:System.RuntimeMethodHandle" /> values.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.CacheResolver.#ctor(Neovolve.Toolkit.Instrumentation.ITraceSourceResolver)">
      <summary>
              Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.CacheResolver" /> class.
            </summary>
      <param name="resolver">
              The resolver.
            </param>
      <exception cref="T:System.ArgumentNullException">
              The <paramref name="resolver" /> value is <c>null</c>.
            </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.CacheResolver.BuildCachePolicies">
      <summary>
              Builds the cache policies.
            </summary>
      <returns>
              A <see cref="T:Neovolve.Toolkit.Storage.IExpirationPolicy" /> array instance.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.CacheResolver.Reload">
      <summary>
              Reloads the <see cref="T:System.Diagnostics.TraceSource" /> names and instances available from the resolver.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.CacheResolver.Resolve(System.String,System.StringComparison)">
      <summary>
              Resolves a <see cref="T:System.Diagnostics.TraceSource" /> using the specified name and string comparison.
            </summary>
      <param name="name">
              The name of the <see cref="T:System.Diagnostics.TraceSource" />.
            </param>
      <param name="comparison">
              The string comparison to apply.
            </param>
      <returns>
              A <see cref="T:System.Diagnostics.TraceSource" /> instance or <c>null</c> if the name is not found.
            </returns>
      <requires description="The name value is null, empty or only contains whitespace characters" inheritedFrom="M:Neovolve.Toolkit.Instrumentation.ITraceSourceResolver.Resolve(System.String,System.StringComparison)" inheritedFromTypeName="ITraceSourceResolver" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(name) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(name) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.CacheResolver.ResolveNames">
      <summary>
              Gets the trace source names.
            </summary>
      <returns>
              A <see cref="T:System.Collections.ObjectModel.Collection`1" /> instance.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.CacheResolver.GenerateNamesCacheKey">
      <summary>
              Generates the names cache key.
            </summary>
      <returns>
              A <see cref="T:System.String" /> value.
            </returns>
      <ensures>String.IsNullOrWhiteSpace(Contract.Result&lt;String&gt;()) == false</ensures>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.CacheResolver.GeneratePartialTraceSourceCacheKey">
      <summary>
              Generates the partial cache key for trace sources.
            </summary>
      <returns>
              A <see cref="T:System.String" /> value.
            </returns>
      <ensures>String.IsNullOrWhiteSpace(Contract.Result&lt;String&gt;()) == false</ensures>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.CacheResolver.GenerateTraceSourceCacheKey(System.String)">
      <summary>
              Generates the cache key for a trace source name.
            </summary>
      <param name="traceSourceName">
              Name of the trace source.
            </param>
      <returns>
              A <see cref="T:System.String" /> value.
            </returns>
      <ensures>String.IsNullOrWhiteSpace(Contract.Result&lt;String&gt;()) == false</ensures>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.CacheResolver.TraceSourceCacheExpiryLength">
      <summary>
              Gets or sets the length of the trace source cache expiry.
            </summary>
      <value>
              The length of the trace source cache expiry.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.CacheResolver.TraceSourceNameCacheExpiryLength">
      <summary>
              Gets or sets the length of the trace source name cache expiry.
            </summary>
      <value>
              The length of the trace source name cache expiry.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.CacheResolver.ChildResolver">
      <summary>
              Gets the child resolver.
            </summary>
      <value>
              The child resolver or <c>null</c> if there is no child resolver.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Storage.ConfigurationManagerStore">
      <summary>
              The <see cref="T:Neovolve.Toolkit.Storage.ConfigurationManagerStore" />
              class is used to provide a 
              <see cref="T:Neovolve.Toolkit.Storage.IConfigurationStore" /> implementation based on the 
              <see cref="T:System.Configuration.ConfigurationManager" /> class.
            </summary>
    </member>
    <member name="T:Neovolve.Toolkit.Storage.IConfigurationStore">
      <summary>
              The <see cref="T:Neovolve.Toolkit.Storage.IConfigurationStore" />
              interface defines the methods used to read and write to a configuration store.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.IConfigurationStore.GetApplicationSetting``1(System.String,``0,System.Boolean)">
      <summary>
              Gets the application setting for the provided key and default value.
            </summary>
      <typeparam name="T">The type of setting value.</typeparam>
      <param name="key">The configuration key.</param>
      <param name="defaultValue">The default value.</param>
      <param name="isRequired">if set to <c>true</c> then a configuration value must be defined; otherwise <c>false</c>.</param>
      <returns>
              A <typeparamref name="T" /> value, or <paramref name="defaultValue" /> if no configuration is found.
            </returns>
      <requires description="The key value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(key) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(key) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.IConfigurationStore.GetConnectionSetting(System.String)">
      <summary>
              Gets the connection setting for the provided key.
            </summary>
      <param name="key">
              The configuration key.
            </param>
      <returns>
              A <see cref="T:System.Configuration.ConnectionStringSettings" /> instance or <c>null</c> if no configuration is found.
            </returns>
      <requires description="The key value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(key) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(key) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.IConfigurationStore.GetSection``1(System.String)">
      <summary>
              Gets the configuration section for the provided section name.
            </summary>
      <typeparam name="T">
              The type of configuration section.
            </typeparam>
      <param name="sectionName">
              Name of the section.
            </param>
      <returns>
              A <typeparamref name="T" /> instance or <c>null</c> if the section is not defined in configuration.
            </returns>
      <requires description="The sectionName value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(sectionName) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(sectionName) == false)</exception>
    </member>
    <member name="F:Neovolve.Toolkit.Storage.ConfigurationManagerStore._supportedConvertTypes">
      <summary>
              Defines the set of types supported by the <see cref="T:System.Convert" /> class.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ConfigurationManagerStore.#ctor">
      <summary>
              Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Storage.ConfigurationManagerStore" /> class.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ConfigurationManagerStore.#ctor(Neovolve.Toolkit.Storage.ICacheStore)">
      <summary>
              Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Storage.ConfigurationManagerStore" /> class.
            </summary>
      <param name="cacheStore">The cache store.</param>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ConfigurationManagerStore.#ctor(Neovolve.Toolkit.Storage.ICacheStore,System.TimeSpan)">
      <summary>
              Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Storage.ConfigurationManagerStore" /> class.
            </summary>
      <param name="cacheStore">The cache store.</param>
      <param name="slidingExpiration">The sliding expiration.</param>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ConfigurationManagerStore.GetApplicationSetting``1(System.String,``0,System.Boolean)">
      <summary>
              Gets the application setting for the provided key and default value.
            </summary>
      <typeparam name="T">The type of setting value.</typeparam>
      <param name="key">The configuration key.</param>
      <param name="defaultValue">The default value.</param>
      <param name="isRequired">if set to <c>true</c> then a configuration value must be defined; otherwise <c>false</c>.</param>
      <returns>
              A <typeparamref name="T" /> value, or <paramref name="defaultValue" /> if no configuration is found.
            </returns>
      <requires description="The key value is null, empty or only contains whitespace characters" inheritedFrom="M:Neovolve.Toolkit.Storage.IConfigurationStore.GetApplicationSetting``1(System.String,``0,System.Boolean)" inheritedFromTypeName="IConfigurationStore" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(key) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(key) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ConfigurationManagerStore.GetConnectionSetting(System.String)">
      <summary>
              Gets the connection setting for the provided key.
            </summary>
      <param name="key">
              The configuration key.
            </param>
      <returns>
              A <see cref="T:System.Configuration.ConnectionStringSettings" /> instance or <c>null</c> if no configuration is found.
            </returns>
      <exception cref="T:System.ArgumentNullException">
              The <paramref name="key" /> is <c>null</c> or equals <see cref="F:System.String.Empty" />.
            </exception>
      <requires description="The key value is null, empty or only contains whitespace characters" inheritedFrom="M:Neovolve.Toolkit.Storage.IConfigurationStore.GetConnectionSetting(System.String)" inheritedFromTypeName="IConfigurationStore" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(key) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(key) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ConfigurationManagerStore.GetSection``1(System.String)">
      <summary>
              Gets the configuration section for the provided section name.
            </summary>
      <typeparam name="T">
              The type of configuration section.
            </typeparam>
      <param name="sectionName">
              Name of the section.
            </param>
      <returns>
              A <typeparamref name="T" /> instance or <c>null</c> if the section is not defined in configuration.
            </returns>
      <exception cref="T:System.ArgumentNullException">
              The <paramref name="sectionName" /> is <c>null</c> or equals <see cref="F:System.String.Empty" />.
            </exception>
      <exception cref="T:System.Configuration.ConfigurationErrorsException">
              The section defined in configuration is not the same type as <typeparamref name="T" />.
            </exception>
      <requires description="The sectionName value is null, empty or only contains whitespace characters" inheritedFrom="M:Neovolve.Toolkit.Storage.IConfigurationStore.GetSection``1(System.String)" inheritedFromTypeName="IConfigurationStore" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(sectionName) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(sectionName) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ConfigurationManagerStore.LoadConfigurationValue``1(System.String,System.Boolean,``0)">
      <summary>
              Loads the configuration value.
            </summary>
      <typeparam name="T">The type of value to load.</typeparam>
      <param name="key">The configuration key.</param>
      <param name="isRequired">if set to <c>true</c> then the configuration is required; otherwise <c>false</c>.</param>
      <param name="defaultValue">The default value.</param>
      <returns>
              A <typeparamref name="T" /> instance.
            </returns>
    </member>
    <member name="P:Neovolve.Toolkit.Storage.ConfigurationManagerStore.CacheStore">
      <summary>
              Gets or sets the cache store.
            </summary>
      <value>
              The cache store.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Storage.ConfigurationManagerStore.SlidingExpiration">
      <summary>
              Gets or sets the sliding expiration.
            </summary>
      <value>
              The sliding expiration.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase" />
              class is used to provide the base cache store implementation that handles expiration policies.
            </summary>
    </member>
    <member name="T:Neovolve.Toolkit.Storage.ICacheStore">
      <summary>
              The <see cref="T:Neovolve.Toolkit.Storage.ICacheStore" />
              interface defines the methods used to read and write to a cache store.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ICacheStore.Add(System.String,System.Object,Neovolve.Toolkit.Storage.IExpirationPolicy[])">
      <summary>
              Adds an item to the cache using the specified key and policy set.
            </summary>
      <param name="key">
              The cache key.
            </param>
      <param name="item">
              The cache item.
            </param>
      <param name="policySet">
              The policy set.
            </param>
      <requires description="The key value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(key) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(key) == false)</exception>
      <requires description="The item value is null." exception="T:System.ArgumentNullException">item != null</requires>
      <exception cref="T:System.ArgumentNullException">item == null</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ICacheStore.Clear">
      <summary>
              Clears the items in the cache.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ICacheStore.Contains(System.String)">
      <summary>
              Determines whether the cache contains an item for the specified cache key.
            </summary>
      <param name="key">
              The cache key.
            </param>
      <returns>
        <c>true</c>if the item exists in the cache, otherwise <c>false</c>.
            </returns>
      <requires description="The key value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(key) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(key) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ICacheStore.GetItem(System.String)">
      <summary>
              Gets the item from the cache.
            </summary>
      <param name="key">The key.</param>
      <returns>
              A <see cref="T:System.Object" /> instance or <c>null</c> if the item is not in the cache.
            </returns>
      <requires description="The key value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(key) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(key) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ICacheStore.Remove(System.String)">
      <summary>
              Removes an item from the cache using the specified cache key.
            </summary>
      <param name="key">
              The cache key.
            </param>
      <returns>
              The item removed from the cache, or <c>null</c> if the item did not exist in the cache.
            </returns>
      <requires description="The key value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(key) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(key) == false)</exception>
    </member>
    <member name="P:Neovolve.Toolkit.Storage.ICacheStore.Count">
      <summary>
              Gets the number of items stored in the cache.
            </summary>
      <value>
              The count.
            </value>
      <returns>
              An <see cref="T:System.Int32" /> value.
            </returns>
    </member>
    <member name="P:Neovolve.Toolkit.Storage.ICacheStore.Keys">
      <summary>
              Gets the cache keys.
            </summary>
      <value>
              The cache keys.
            </value>
      <getter>
        <ensures>Contract.Result&lt;IEnumerable&lt;String&gt;&gt;() != null</ensures>
      </getter>
    </member>
    <member name="F:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase._policyLock">
      <summary>
            Stores the lock used for reading and writing to the expiration policy sets.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase._expirationPolicies">
      <summary>
            Stores the expiration policies for items in the cache.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase.Add(System.String,System.Object,Neovolve.Toolkit.Storage.IExpirationPolicy[])">
      <summary>
            Adds the specified item with a set of expiration policies.
            </summary>
      <param name="key">
            The cache key.
            </param>
      <param name="item">
            The item to be added to the cache.
            </param>
      <param name="policySet">
            The expiration policies for the item.
            </param>
      <requires description="The key value is null, empty or only contains whitespace characters" inheritedFrom="M:Neovolve.Toolkit.Storage.ICacheStore.Add(System.String,System.Object,Neovolve.Toolkit.Storage.IExpirationPolicy[])" inheritedFromTypeName="ICacheStore" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(key) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(key) == false)</exception>
      <requires description="The item value is null." inheritedFrom="M:Neovolve.Toolkit.Storage.ICacheStore.Add(System.String,System.Object,Neovolve.Toolkit.Storage.IExpirationPolicy[])" inheritedFromTypeName="ICacheStore" exception="T:System.ArgumentNullException">item != null</requires>
      <exception cref="T:System.ArgumentNullException">item == null</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase.Clear">
      <summary>
            Clears the items from the cache.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase.Contains(System.String)">
      <summary>
            Determines whether the cache contains an item for the specified cache key.
            </summary>
      <param name="key">
            The cache key.
            </param>
      <returns>
        <c>true</c>if the item exists in the cache, otherwise <c>false</c>.
            </returns>
      <requires description="The key value is null, empty or only contains whitespace characters" inheritedFrom="M:Neovolve.Toolkit.Storage.ICacheStore.Contains(System.String)" inheritedFromTypeName="ICacheStore" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(key) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(key) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase.GetItem(System.String)">
      <summary>
              Gets the item from the cache.
            </summary>
      <param name="key">The key.</param>
      <returns>
              A <see cref="T:System.Object" /> instance or <c>null</c> if the item is not in the cache.
            </returns>
      <requires description="The key value is null, empty or only contains whitespace characters" inheritedFrom="M:Neovolve.Toolkit.Storage.ICacheStore.GetItem(System.String)" inheritedFromTypeName="ICacheStore" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(key) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(key) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase.Remove(System.String)">
      <summary>
            Removes an item from the cache using the specified cache key.
            </summary>
      <param name="key">
            The cache key.
            </param>
      <returns>
            The item removed from the cache, or <c>null</c> if the item did not exist in the cache.
            </returns>
      <requires description="The key value is null, empty or only contains whitespace characters" inheritedFrom="M:Neovolve.Toolkit.Storage.ICacheStore.Remove(System.String)" inheritedFromTypeName="ICacheStore" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(key) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(key) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase.AddItem(System.String,System.Object,Neovolve.Toolkit.Storage.IExpirationPolicy[])">
      <summary>
            Adds the item to the cache.
            </summary>
      <param name="key">
            The cache key.
            </param>
      <param name="item">
            The cache item.
            </param>
      <param name="policySetSet">
            The policy set.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase.ClearCache">
      <summary>
            Clears the items from the cache.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase.ContainsItem(System.String)">
      <summary>
            Checks if the cache contains the item identified by the key.
            </summary>
      <param name="key">
            The cache key.
            </param>
      <returns>
            A <see cref="T:System.Boolean" /> instance.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase.ReadItem(System.String)">
      <summary>
            Reads the item from the cache using the specified key.
            </summary>
      <param name="key">
            The cache key.
            </param>
      <returns>
            A <see cref="T:System.Object" /> instance.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase.ReadKeys">
      <summary>
            Reads the cache keys.
            </summary>
      <returns>
            A <see cref="T:System.String" /> array instance.
            </returns>
      <ensures>Contract.Result&lt;Collection&lt;String&gt;&gt;() != null</ensures>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase.RemoveItem(System.String)">
      <summary>
            Removes the item from the cache.
            </summary>
      <param name="key">
            The cache key.
            </param>
      <returns>
            A <see cref="T:System.Object" /> instance.
            </returns>
      <requires description="The key value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(key) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(key) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase.ContainsExpiredPolicy(System.Collections.Generic.ICollection{Neovolve.Toolkit.Storage.IExpirationPolicy})">
      <summary>
            Determines whether the specified policy set contains policies that have expired.
            </summary>
      <param name="policySet">
            The policy set.
            </param>
      <returns>
        <c>true</c>if the policy set contains expired policies; otherwise, <c>false</c>.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase.AddItemInternal(System.String,System.Object,Neovolve.Toolkit.Storage.IExpirationPolicy[])">
      <summary>
            The internal implementation for adding an item to the cache.
            </summary>
      <param name="key">
            The cache key.
            </param>
      <param name="item">
            The item to add to the cache.
            </param>
      <param name="policySet">
            The policy set.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase.EvaluateAllPolicySets">
      <summary>
            Evaluates all policy sets.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase.EvaluatePolicySetForKey(System.String)">
      <summary>
            Evaluates the policy set for key.
            </summary>
      <param name="cacheKey">
            The cache key.
            </param>
      <requires description="The cacheKey value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(cacheKey) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(cacheKey) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase.GetPolicySet(System.String)">
      <summary>
            Gets the policy set.
            </summary>
      <param name="cacheKey">
            The cache key.
            </param>
      <returns>
            A <see cref="T:Neovolve.Toolkit.Storage.IExpirationPolicy" /> array instance.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase.RemoveItemInternal(System.String)">
      <summary>
            Remove item internal.
            </summary>
      <param name="key">
            The cache key.
            </param>
      <returns>
            A <see cref="T:System.Object" /> instance.
            </returns>
      <requires description="The key value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(key) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(key) == false)</exception>
    </member>
    <member name="P:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase.Count">
      <summary>
            Gets the number of items stored in the cache.
            </summary>
      <value>
            The count.
            </value>
      <returns>
            An <see cref="T:System.Int32" /> value.
            </returns>
    </member>
    <member name="P:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase.Keys">
      <summary>
            Gets the cache keys.
            </summary>
      <value>
            The cache keys.
            </value>
      <getter>
        <ensures inheritedFrom="M:Neovolve.Toolkit.Storage.ICacheStore.get_Keys" inheritedFromTypeName="ICacheStore">Contract.Result&lt;IEnumerable&lt;String&gt;&gt;() != null</ensures>
      </getter>
    </member>
    <member name="P:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase.ItemCount">
      <summary>
            Gets the item count.
            </summary>
      <value>
            The item count.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Storage.SlidingExpirationPolicy">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Storage.SlidingExpirationPolicy" />
              class is used to define a sliding time when a cache item is to expire based on when it was last read.
            </summary>
    </member>
    <member name="T:Neovolve.Toolkit.Storage.IExpirationPolicy">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Storage.IExpirationPolicy" />
              interface is used to define how a cache item expiration policy is evaluated in 
              order to determine whether the item should be removed from the cache.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.IExpirationPolicy.NotifyItemAdded(System.Object)">
      <summary>
            Notifies that the cache item has been added to the cache.
            </summary>
      <param name="cacheItem">
            The cache item.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.IExpirationPolicy.NotifyItemRead(System.Object)">
      <summary>
            Notifies that the cache item has been read from the cache.
            </summary>
      <param name="cachedItem">
            The cached item.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.IExpirationPolicy.NotifyItemRemoved(System.Object)">
      <summary>
            Notifies the cache item has been removed from the cache.
            </summary>
      <param name="cachedItem">
            The cached item.
            </param>
    </member>
    <member name="P:Neovolve.Toolkit.Storage.IExpirationPolicy.HasExpired">
      <summary>
            Gets a value indicating whether the cache item has expired.
            </summary>
      <value>
        <c>true</c> if the cache item has expired; otherwise, <c>false</c>.
            </value>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.SlidingExpirationPolicy.#ctor(System.TimeSpan)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Storage.SlidingExpirationPolicy" /> class.
            </summary>
      <param name="relativeExpiration">
            The relative expiration.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.SlidingExpirationPolicy.NotifyItemAdded(System.Object)">
      <summary>
            Notifies that the cache item has been added to the cache.
            </summary>
      <param name="cacheItem">
            The cache item.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.SlidingExpirationPolicy.NotifyItemRead(System.Object)">
      <summary>
            Notifies that the cache item has been read from the cache.
            </summary>
      <param name="cachedItem">
            The cached item.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.SlidingExpirationPolicy.NotifyItemRemoved(System.Object)">
      <summary>
            Notifies the cache item has been removed from the cache.
            </summary>
      <param name="cachedItem">
            The cached item.
            </param>
    </member>
    <member name="P:Neovolve.Toolkit.Storage.SlidingExpirationPolicy.Expiration">
      <summary>
            Gets the expiration.
            </summary>
      <value>
            The expiration.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Storage.SlidingExpirationPolicy.HasExpired">
      <summary>
            Gets a value indicating whether the cache item has expired.
            </summary>
      <value>
        <c>true</c>if the cache item has expired; otherwise, <c>false</c>.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Storage.SlidingExpirationPolicy.CurrentTime">
      <summary>
            Gets the current time.
            </summary>
      <value>
            The current time.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Storage.SlidingExpirationPolicy.Expires">
      <summary>
            Gets the time the policy expires.
            </summary>
      <value>
            The time the policy expires.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Storage.SlidingExpirationPolicy.LastRead">
      <summary>
            Gets the last read.
            </summary>
      <value>
            The last read.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Storage.SlidingExpirationPolicy.ItemLastRead">
      <summary>
            Gets or sets when the item was last read.
            </summary>
      <value>
            When the item was last read.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Storage.CacheStoreContracts">
      <summary>
              The <see cref="T:Neovolve.Toolkit.Storage.CacheStoreContracts" />
              class is used to define the code contracts for the <see cref="T:Neovolve.Toolkit.Storage.ICacheStore" /> interface.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.CacheStoreContracts.Add(System.String,System.Object,Neovolve.Toolkit.Storage.IExpirationPolicy[])">
      <summary>
              Adds an item to the cache using the specified key and policy set.
            </summary>
      <param name="key">
              The cache key.
            </param>
      <param name="item">
              The cache item.
            </param>
      <param name="policySet">
              The policy set.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.CacheStoreContracts.Clear">
      <summary>
              Clears the items in the cache.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.CacheStoreContracts.Contains(System.String)">
      <summary>
              Determines whether the cache contains an item for the specified cache key.
            </summary>
      <param name="key">
              The cache key.
            </param>
      <returns>
        <c>true</c>if the item exists in the cache, otherwise <c>false</c>.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.CacheStoreContracts.GetItem(System.String)">
      <summary>
              Gets the item from the cache.
            </summary>
      <param name="key">The key.</param>
      <returns>
              A <see cref="T:System.Object" /> instance or <c>null</c> if the item is not in the cache.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.CacheStoreContracts.Remove(System.String)">
      <summary>
              Removes an item from the cache using the specified cache key.
            </summary>
      <param name="key">
              The cache key.
            </param>
      <returns>
              The item removed from the cache, or <c>null</c> if the item did not exist in the cache.
            </returns>
    </member>
    <member name="P:Neovolve.Toolkit.Storage.CacheStoreContracts.Count">
      <summary>
              Gets the number of items stored in the cache.
            </summary>
      <value>
              The count.
            </value>
      <returns>
              An <see cref="T:System.Int32" /> value.
            </returns>
    </member>
    <member name="P:Neovolve.Toolkit.Storage.CacheStoreContracts.Keys">
      <summary>
              Gets the cache keys.
            </summary>
      <value>
              The cache keys.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Instrumentation.RecordTraceInitializationContext">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Instrumentation.RecordTraceInitializationContext" />
              struct is used to hold initialization information that determines
              how a <see cref="T:Neovolve.Toolkit.Instrumentation.RecordTrace" /> instances is initialized.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.RecordTraceInitializationContext.#ctor(System.String,Neovolve.Toolkit.Instrumentation.ITraceSourceResolver,System.Boolean)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.RecordTraceInitializationContext" /> struct.
            </summary>
      <param name="traceSourceName">
            Name of the trace source.
            </param>
      <param name="resolver">
            The resolver.
            </param>
      <param name="throwOnSourceLoadFailure">
            If set to <c>true</c> and exception will be thrown if the source cannot be loaded.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.RecordTraceInitializationContext.#ctor(System.Diagnostics.TraceSource)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.RecordTraceInitializationContext" /> struct.
            </summary>
      <param name="source">
            The source.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.RecordTraceInitializationContext.op_Equality(Neovolve.Toolkit.Instrumentation.RecordTraceInitializationContext,Neovolve.Toolkit.Instrumentation.RecordTraceInitializationContext)">
      <summary>
            Implements the operator ==.
            </summary>
      <param name="contextA">
            The context A.
            </param>
      <param name="contextB">
            The context B.
            </param>
      <returns>
            The result of the operator.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.RecordTraceInitializationContext.op_Inequality(Neovolve.Toolkit.Instrumentation.RecordTraceInitializationContext,Neovolve.Toolkit.Instrumentation.RecordTraceInitializationContext)">
      <summary>
            Implements the operator !=.
            </summary>
      <param name="contextA">
            The context A.
            </param>
      <param name="contextB">
            The context B.
            </param>
      <returns>
            The result of the operator.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.RecordTraceInitializationContext.Equals(System.Object)">
      <summary>
            Indicates whether this instance and a specified object are equal.
            </summary>
      <param name="obj">
            Another object to compare to.
            </param>
      <returns>
            True if <paramref name="obj" /> and this instance are the same type and represent the same value; otherwise, false.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.RecordTraceInitializationContext.GetHashCode">
      <summary>
            Returns the hash code for this instance.
            </summary>
      <returns>
            A 32-bit signed integer that is the hash code for this instance.
            </returns>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.RecordTraceInitializationContext.Resolver">
      <summary>
            Gets or sets the resolver.
            </summary>
      <value>
            The resolver.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.RecordTraceInitializationContext.Source">
      <summary>
            Gets or sets the source.
            </summary>
      <value>
            The source.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.RecordTraceInitializationContext.ThrowOnSourceLoadFailure">
      <summary>
            Gets or sets a value indicating whether an exception will be thrown if the source cannot be loaded.
            </summary>
      <value>
        <c>true</c> if an exception will be thrown if the source cannot be loaded, otherwise <c>false</c>.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.RecordTraceInitializationContext.TraceSourceName">
      <summary>
            Gets or sets the name of the trace source.
            </summary>
      <value>
            The name of the trace source.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Communication.ProxyHandler`1">
      <summary>
              The <see cref="T:Neovolve.Toolkit.Communication.ProxyHandler`1" />
              class is used to provide the base logic for managing the execution of methods on a proxy.
            </summary>
      <typeparam name="T">
              The type of proxy.
            </typeparam>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ProxyHandler`1.#ctor">
      <summary>
              Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Communication.ProxyHandler`1" /> class.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ProxyHandler`1.Initialize``1(System.Action{``0})">
      <summary>
              Initializes the proxy using the specified action.
            </summary>
      <typeparam name="TInitialize">
              The type of object to initialize.
            </typeparam>
      <param name="action">
              The action used to initialize the proxy.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ProxyHandler`1.Invoke(System.Runtime.Remoting.Messaging.IMessage)">
      <summary>
              Invokes the method that is specified in the provided <see cref="T:System.Runtime.Remoting.Messaging.IMessage" /> on the remote object that is represented by the current instance.
            </summary>
      <param name="msg">
              A <see cref="T:System.Runtime.Remoting.Messaging.IMessage" /> that contains a <see cref="T:System.Collections.IDictionary" /> of information about the method call.
            </param>
      <returns>
              The message returned by the invoked method, containing the return value and any out or ref parameters.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ProxyHandler`1.ExecuteMethod(System.Reflection.MethodBase,System.Object[])">
      <summary>
              Executes the method.
            </summary>
      <param name="method">
              The method.
            </param>
      <param name="parameters">
              The parameters.
            </param>
      <returns>
              A <see cref="T:System.Object" /> instance.
            </returns>
    </member>
    <member name="P:Neovolve.Toolkit.Communication.ProxyHandler`1.InitializeAction">
      <summary>
              Gets or sets the initialize action.
            </summary>
      <value>
              The initialize action.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Instrumentation.ActivityTraceState">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Instrumentation.ActivityTraceState" />
              enum is used to define the state of a 
              <see cref="T:Neovolve.Toolkit.Instrumentation.ActivityTrace" /> instance.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Instrumentation.ActivityTraceState.Stopped">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Instrumentation.ActivityTrace" /> is stopped.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Instrumentation.ActivityTraceState.Running">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Instrumentation.ActivityTrace" /> is running.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Instrumentation.ActivityTraceState.Suspended">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Instrumentation.ActivityTrace" /> has been suspended.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Instrumentation.ActivityTraceState.Disabled">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Instrumentation.ActivityTrace" /> is disabled.
            </summary>
    </member>
    <member name="T:Neovolve.Toolkit.Communication.Security.PasswordIdentity">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordIdentity" />
              class provides an <see cref="T:System.Security.Principal.IIdentity" /> that exposes the password related to the username.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Communication.Security.PasswordIdentity._isAuthenticated">
      <summary>
            Stores the IsAuthenticated value.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.Security.PasswordIdentity.#ctor(System.String,System.Security.SecureString,System.Boolean,System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordIdentity" /> class.
            </summary>
      <param name="userName">
            Name of the user.
            </param>
      <param name="password">
            The password.
            </param>
      <param name="isAuthenticated">
        <c>true</c>, if the identity is authenticated; otherwise, <c>false</c>.
            </param>
      <param name="authenticationType">
            Type of the authentication.
            </param>
    </member>
    <member name="P:Neovolve.Toolkit.Communication.Security.PasswordIdentity.IsAuthenticated">
      <summary>
            Gets a value indicating whether the user has been authenticated.
            </summary>
      <value>
            A value indicating whether the user has been authenticated.
            </value>
      <returns>
        <c>true</c> if the user was authenticated; otherwise, <c>false</c>.
            </returns>
    </member>
    <member name="P:Neovolve.Toolkit.Communication.Security.PasswordIdentity.Password">
      <summary>
            Gets the password.
            </summary>
      <value>
            The password.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.BusinessFailureException`1">
      <summary>
              The <see cref="T:Neovolve.Toolkit.BusinessFailureException`1" />
              class is used to throw an exception when business failures are encountered.
            </summary>
      <typeparam name="T">
              The type of failure code.
            </typeparam>
    </member>
    <member name="F:Neovolve.Toolkit.BusinessFailureException`1.FailuresKey">
      <summary>
              Defines the key used to identify the <see cref="P:Neovolve.Toolkit.BusinessFailureException`1.Failures" /> property for serialization.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.BusinessFailureException`1.IncludeBaseMessageKey">
      <summary>
              Defines the key used to identify the <see cref="P:Neovolve.Toolkit.BusinessFailureException`1.IncludeBaseMessage" /> property for serialization.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.BusinessFailureException`1.#ctor">
      <summary>
              Initializes a new instance of the <see cref="T:Neovolve.Toolkit.BusinessFailureException`1" /> class.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.BusinessFailureException`1.#ctor(System.String)">
      <summary>
              Initializes a new instance of the <see cref="T:Neovolve.Toolkit.BusinessFailureException`1" /> class.
            </summary>
      <param name="message">
              The message.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.BusinessFailureException`1.#ctor(`0,System.String)">
      <summary>
              Initializes a new instance of the <see cref="T:Neovolve.Toolkit.BusinessFailureException`1" /> class.
            </summary>
      <param name="code">
              The failure code.
            </param>
      <param name="description">
              The failure description.
            </param>
      <requires description="The description value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(description) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(description) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.BusinessFailureException`1.#ctor(Neovolve.Toolkit.BusinessFailure{`0})">
      <summary>
              Initializes a new instance of the <see cref="T:Neovolve.Toolkit.BusinessFailureException`1" /> class.
            </summary>
      <param name="failure">
              The failure.
            </param>
      <requires description="The failure value is null." exception="T:System.ArgumentNullException">failure != null</requires>
      <exception cref="T:System.ArgumentNullException">failure == null</exception>
    </member>
    <member name="M:Neovolve.Toolkit.BusinessFailureException`1.#ctor(System.Collections.Generic.IEnumerable{Neovolve.Toolkit.BusinessFailure{`0}})">
      <summary>
              Initializes a new instance of the <see cref="T:Neovolve.Toolkit.BusinessFailureException`1" /> class.
            </summary>
      <param name="failures">
              The failures.
            </param>
      <requires description="The failures value is null." exception="T:System.ArgumentNullException">failures != null</requires>
      <exception cref="T:System.ArgumentNullException">failures == null</exception>
    </member>
    <member name="M:Neovolve.Toolkit.BusinessFailureException`1.#ctor(System.String,System.Exception)">
      <summary>
              Initializes a new instance of the <see cref="T:Neovolve.Toolkit.BusinessFailureException`1" /> class.
            </summary>
      <param name="message">
              The message.
            </param>
      <param name="inner">
              The inner.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.BusinessFailureException`1.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
      <summary>
              Initializes a new instance of the <see cref="T:Neovolve.Toolkit.BusinessFailureException`1" /> class.
            </summary>
      <param name="info">
              The <see cref="T:System.Runtime.Serialization.SerializationInfo" /> that holds the serialized object data about the exception being thrown.
            </param>
      <param name="context">
              The <see cref="T:System.Runtime.Serialization.StreamingContext" /> that contains contextual information about the source or destination.
            </param>
      <exception cref="T:System.ArgumentNullException">
              The <paramref name="info" /> parameter is null. 
            </exception>
      <exception cref="T:System.Runtime.Serialization.SerializationException">
              The class name is null or <see cref="P:System.Exception.HResult" /> is zero (0). 
            </exception>
    </member>
    <member name="M:Neovolve.Toolkit.BusinessFailureException`1.GetObjectData(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
      <summary>
              Sets the <see cref="T:System.Runtime.Serialization.SerializationInfo" /> with information about the exception.
            </summary>
      <param name="info">
              The <see cref="T:System.Runtime.Serialization.SerializationInfo" /> that holds the serialized object data about the exception being thrown.
            </param>
      <param name="context">
              The <see cref="T:System.Runtime.Serialization.StreamingContext" /> that contains contextual information about the source or destination.
            </param>
      <exception cref="T:System.ArgumentNullException">
              The <paramref name="info" /> parameter is a null reference (Nothing in Visual Basic).
            </exception>
    </member>
    <member name="P:Neovolve.Toolkit.BusinessFailureException`1.Failures">
      <summary>
              Gets the failures.
            </summary>
      <value>
              The failures.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.BusinessFailureException`1.Message">
      <summary>
              Gets a message that describes the current exception.
            </summary>
      <value>
              The exception message.
            </value>
      <returns>
              The error message that explains the reason for the exception, or an empty string("").
            </returns>
      <getter>
        <ensures inheritedFrom="M:System.Exception.get_Message" inheritedFromTypeName="Exception">Contract.Result&lt;string&gt;() != null</ensures>
      </getter>
    </member>
    <member name="P:Neovolve.Toolkit.BusinessFailureException`1.IncludeBaseMessage">
      <summary>
              Gets or sets a value indicating whether the message from the base class will be included.
            </summary>
      <value>
        <c>true</c> if the message from the base class will be included; otherwise, <c>false</c>.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Instrumentation.ActivityTraceContext">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Instrumentation.ActivityTraceContext" />
              class is used to provide information about a
              <see cref="T:Neovolve.Toolkit.Instrumentation.ActivityTrace" /> as it is stored in the
              <see cref="P:System.Diagnostics.CorrelationManager.LogicalOperationStack" />.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Instrumentation.ActivityTraceContext.Empty">
      <summary>
            Defines an empty <see cref="T:Neovolve.Toolkit.Instrumentation.ActivityTraceContext" /> instance.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Instrumentation.ActivityTraceContext._state">
      <summary>
            Stores the State value.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ActivityTraceContext.#ctor">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.ActivityTraceContext" /> class.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ActivityTraceContext.Equals(System.Object)">
      <summary>
            Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" />.
            </summary>
      <param name="obj">
            The <see cref="T:System.Object" /> to compare with the current <see cref="T:System.Object" />.
            </param>
      <returns>
            True if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" />; otherwise, false.
            </returns>
      <exception cref="T:System.NullReferenceException">
            The <paramref name="obj" /> parameter is null.
            </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ActivityTraceContext.GetHashCode">
      <summary>
            Serves as a hash function for a particular type.
            </summary>
      <returns>
            A hash code for the current <see cref="T:System.Object" />.
            </returns>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.ActivityTraceContext.ActivityId">
      <summary>
            Gets or sets the activity id.
            </summary>
      <value>
            The activity id.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.ActivityTraceContext.PreviousActivityId">
      <summary>
            Gets or sets the previous activity id.
            </summary>
      <value>
            The previous activity id.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.ActivityTraceContext.Source">
      <summary>
            Gets or sets the source.
            </summary>
      <value>
            The source.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.ActivityTraceContext.State">
      <summary>
            Gets or sets the state of the current instance.
            </summary>
      <value>
            The state of the current instance.
            </value>
      <remarks>
            The returned value will always be <see cref="F:Neovolve.Toolkit.Instrumentation.ActivityTraceState.Disabled" /> if <see cref="P:Neovolve.Toolkit.Instrumentation.ActivityTraceContext.Source" /> is <c>null</c>.
            </remarks>
    </member>
    <member name="T:Neovolve.Toolkit.Reflection.TypeResolver">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Reflection.TypeResolver" />
              class is used to resolve types from configuration mapping information.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Reflection.TypeResolver._configuration">
      <summary>
            Stores the configuration store reference.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Reflection.TypeResolver._mappingStore">
      <summary>
            Stores the mappings of type names and configuration keys to the assembly qualified type name.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Reflection.TypeResolver._typeHandleStore">
      <summary>
            Stores the type handles for assembly qualified type names.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Reflection.TypeResolver.CanResolveType(System.Type)">
      <summary>
            Determines whether a type can be resolved from the specified source type.
            </summary>
      <param name="sourceType">
            The source type.
            </param>
      <returns>
        <c>true</c>if a type can be resolved from the source type; otherwise, <c>false</c>.
            </returns>
      <requires description="The sourceType value is null." exception="T:System.ArgumentNullException">sourceType != null</requires>
      <exception cref="T:System.ArgumentNullException">sourceType == null</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Reflection.TypeResolver.CanResolveTypeFromKey(System.Type,System.String)">
      <summary>
            Determines whether a type can be resolved from the specified source type and configuration key.
            </summary>
      <param name="sourceType">
            The source type.
            </param>
      <param name="configurationKey">
            The configuration key used to load the type.
            </param>
      <returns>
        <c>true</c>if a type can be resolved from the source type and configuration key; otherwise, <c>false</c>.
            </returns>
      <exception cref="T:System.ArgumentNullException">
            The 
              <paramref name="configurationKey" />
              parameter is <c>null</c> or equals <see cref="F:System.String.Empty">String.Empty</see>.
            </exception>
      <requires description="The sourceType value is null." exception="T:System.ArgumentNullException">sourceType != null</requires>
      <exception cref="T:System.ArgumentNullException">sourceType == null</exception>
      <requires description="The configurationKey value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(configurationKey) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(configurationKey) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Reflection.TypeResolver.Create``1">
      <summary>
            Creates an instance of a type resolved from configuration using the specified type parameter.
            </summary>
      <typeparam name="T">
            The source type used to determine the type to create.
            </typeparam>
      <returns>
            A <typeparamref name="T" /> instance.
            </returns>
      <remarks>
            The type loaded from configuration must contain a parameterless constructor
              in order for an instance to be created.
            </remarks>
      <exception cref="T:System.TypeLoadException">
            The type identified in configuration could not be loaded.
            </exception>
      <exception cref="T:System.InvalidCastException">
            The source type is not assignable from the type loaded.
            </exception>
      <exception cref="T:System.MissingMethodException">
            The loaded type does not contain a parameterless constructor and an instance can not be created.
            </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Reflection.TypeResolver.CreateFromKey``1(System.String)">
      <summary>
            Creates an instance of a type resolved from configuration using the specified type parameter and configuration key.
            </summary>
      <typeparam name="T">
            The source type used to determine the type to create.
            </typeparam>
      <param name="configurationKey">
            The configuration key.
            </param>
      <returns>
            A <typeparamref name="T" /> instance.
            </returns>
      <remarks>
            The type loaded from configuration must contain a parameterless constructor
              in order for an instance to be created.
            </remarks>
      <exception cref="T:System.TypeLoadException">
            The type identified in configuration could not be loaded.
            </exception>
      <exception cref="T:System.InvalidCastException">
            The source type is not assignable from the type loaded.
            </exception>
      <exception cref="T:System.MissingMethodException">
            The loaded type does not contain a parameterless constructor and an instance can not be created.
            </exception>
      <requires description="The configurationKey value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(configurationKey) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(configurationKey) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Reflection.TypeResolver.Resolve(System.Type)">
      <summary>
            Resolves a type from configuration using the specified source type.
            </summary>
      <param name="sourceType">
            The source Type.
            </param>
      <returns>
            A <see cref="T:System.Type" /> instance.
            </returns>
      <exception cref="T:System.TypeLoadException">
            The type identified in configuration could not be loaded.
            </exception>
      <exception cref="T:System.InvalidCastException">
            The source type is not assignable from the type loaded.
            </exception>
      <requires description="The sourceType value is null." exception="T:System.ArgumentNullException">sourceType != null</requires>
      <exception cref="T:System.ArgumentNullException">sourceType == null</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Reflection.TypeResolver.ResolveFromKey(System.Type,System.String)">
      <summary>
            Resolves a type from configuration using the specified source type and configuration key.
            </summary>
      <param name="sourceType">
            The source Type.
            </param>
      <param name="configurationKey">
            The configuration key.
            </param>
      <returns>
            A <see cref="T:System.Type" /> instance.
            </returns>
      <exception cref="T:System.ArgumentNullException">
            The 
              <paramref name="configurationKey" />
              parameter is <c>null</c> or equals <see cref="F:System.String.Empty">String.Empty</see>.
            </exception>
      <exception cref="T:System.TypeLoadException">
            The type identified in configuration could not be loaded.
            </exception>
      <exception cref="T:System.InvalidCastException">
            The source type is not assignable from the type loaded.
            </exception>
      <requires description="The sourceType value is null." exception="T:System.ArgumentNullException">sourceType != null</requires>
      <exception cref="T:System.ArgumentNullException">sourceType == null</exception>
      <requires description="The configurationKey value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(configurationKey) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(configurationKey) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Reflection.TypeResolver.GetPartiallyQualifiedName(System.Type)">
      <summary>
            Gets the partially qualified name of the type.
            </summary>
      <param name="evaluation">
            The evaluation.
            </param>
      <returns>
            A <see cref="T:System.String" /> value.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Reflection.TypeResolver.IsValidType(System.Type,System.Type)">
      <summary>
            Determines whether the resolved type is valid.
            </summary>
      <param name="resolvedType">
            The resolved type.
            </param>
      <param name="sourceType">
            The source type.
            </param>
      <returns>
        <c>true</c>if the resolved type is valid; otherwise, <c>false</c>.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Reflection.TypeResolver.LoadType(System.String)">
      <summary>
            Loads the type using the specified type name.
            </summary>
      <param name="typeName">
            Name of the type.
            </param>
      <returns>
            A <see cref="T:System.Type" /> instance or <c>null</c> if no type was loaded.
            </returns>
      <requires description="The typeName value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(typeName) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(typeName) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Reflection.TypeResolver.ResolveTypeHandle(System.String)">
      <summary>
            Resolves the type handle.
            </summary>
      <param name="typeName">Name of the type.</param>
      <returns>
            A <see cref="T:System.RuntimeTypeHandle" /> instance.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Reflection.TypeResolver.ResolveConfigurationForType(System.Type)">
      <summary>
            Resolves the configuration key that defines the target type to load for the specified source type.
            </summary>
      <param name="sourceType">
            The source type.
            </param>
      <returns>
            A <see cref="T:System.Collections.Generic.KeyValuePair`2" /> instance.
            </returns>
      <requires description="The sourceType value is null." exception="T:System.ArgumentNullException">sourceType != null</requires>
      <exception cref="T:System.ArgumentNullException">sourceType == null</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Reflection.TypeResolver.ResolveFromKeyInternal(System.Type,System.String,System.Boolean)">
      <summary>
            The internal implementation for resolving a target type from the specified source type and configuration key.
            </summary>
      <param name="sourceType">
            The source type.
            </param>
      <param name="configurationKey">
            The configuration key.
            </param>
      <param name="validateLoadedType">
            If set to <c>true</c>, the loaded type is validated.
            </param>
      <returns>
            A <see cref="T:System.Type" /> instance.
            </returns>
      <exception cref="T:System.TypeLoadException">
            The type identified in configuration could not be loaded.
            </exception>
      <exception cref="T:System.InvalidCastException">
            The source type is not assignable from the type loaded.
            </exception>
      <requires description="The sourceType value is null." exception="T:System.ArgumentNullException">sourceType != null</requires>
      <exception cref="T:System.ArgumentNullException">sourceType == null</exception>
      <requires description="The configurationKey value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(configurationKey) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(configurationKey) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Reflection.TypeResolver.ResolveInternal(System.Type,System.Boolean)">
      <summary>
            The internal implementation for resolving a target type from the specified source type.
            </summary>
      <param name="sourceType">
            The source type.
            </param>
      <param name="validateLoadedType">
            If set to <c>true</c>, the loaded type is validated.
            </param>
      <returns>
            A <see cref="T:System.Type" /> instance.
            </returns>
      <exception cref="T:System.ArgumentNullException">
            The <paramref name="sourceType" /> parameter is <c>null</c>.
            </exception>
      <exception cref="T:System.TypeLoadException">
            The type identified in configuration could not be loaded.
            </exception>
      <exception cref="T:System.InvalidCastException">
            The source type is not assignable from the type loaded.
            </exception>
      <requires description="The sourceType value is null." exception="T:System.ArgumentNullException">sourceType != null</requires>
      <exception cref="T:System.ArgumentNullException">sourceType == null</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Reflection.TypeResolver.ValidateResolvedType(System.Type,System.Type,System.String)">
      <summary>
            Validates that the source type is source from the loaded type.
            </summary>
      <param name="resolvedType">
            The resolved type.
            </param>
      <param name="sourceType">
            The source type.
            </param>
      <param name="configurationKeyUsed">
            The configuration key used to resolve the type.
            </param>
      <exception cref="T:System.TypeLoadException">
            The type identified in configuration could not be loaded.
            </exception>
      <exception cref="T:System.InvalidCastException">
            The source type is not assignable from the type loaded.
            </exception>
    </member>
    <member name="P:Neovolve.Toolkit.Reflection.TypeResolver.Configuration">
      <summary>
            Gets the configuration.
            </summary>
      <value>
            The configuration.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Reflection.TypeResolver.MappingStore">
      <summary>
            Gets the mappings of type names and configuration keys to the assembly qualified type name.
            </summary>
      <value>
            The mapping store.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Reflection.TypeResolver.TypeHandleStore">
      <summary>
            Gets the type handles for assembly qualified type names.
            </summary>
      <value>
            The type handle store.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Instrumentation.TraceSourceResolverContracts">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Instrumentation.TraceSourceResolverContracts" />
            class is used to define the code contracts for the <see cref="T:Neovolve.Toolkit.Instrumentation.ITraceSourceResolver" /> interface.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.TraceSourceResolverContracts.Reload">
      <summary>
            Reloads the <see cref="T:System.Diagnostics.TraceSource" /> names and instances available from the resolver.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.TraceSourceResolverContracts.Resolve(System.String,System.StringComparison)">
      <summary>
            Resolves a <see cref="T:System.Diagnostics.TraceSource" /> using the specified name and string comparison.
            </summary>
      <param name="name">
            The name of the <see cref="T:System.Diagnostics.TraceSource" />.
            </param>
      <param name="comparison">
            The string comparison to apply.
            </param>
      <returns>
            A <see cref="T:System.Diagnostics.TraceSource" /> instance or <c>null</c> if the name is not found.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.TraceSourceResolverContracts.ResolveNames">
      <summary>
            Resolves the available <see cref="T:System.Diagnostics.TraceSource" /> names.
            </summary>
      <returns>
            A <see cref="T:System.Collections.ObjectModel.Collection`1" /> instance.
            </returns>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.TraceSourceResolverContracts.ChildResolver">
      <summary>
            Gets the child resolver.
            </summary>
      <value>
            The child resolver or <c>null</c> if there is no child resolver.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Storage.NamespaceDoc">
      <summary>
            The Neovolve.Toolkit.Storage namespace contains classes that provide storage related functionality such as interface based caching and configuration implementations.
            </summary>
    </member>
    <member name="T:Neovolve.Toolkit.Communication.Security.PasswordSecurityTokenManager">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordSecurityTokenManager" />
              class is used to provide the <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordSecurityTokenAuthenticator" />
              used for processing user name and password combinations for service authentication.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.Security.PasswordSecurityTokenManager.#ctor(System.ServiceModel.Description.ServiceCredentials)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordSecurityTokenManager" /> class.
            </summary>
      <param name="credentials">
            The credentials.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.Security.PasswordSecurityTokenManager.CreateSecurityTokenAuthenticator(System.IdentityModel.Selectors.SecurityTokenRequirement,System.IdentityModel.Selectors.SecurityTokenResolver@)">
      <summary>
            Creates a security token authenticator based on the <see cref="T:System.IdentityModel.Selectors.SecurityTokenRequirement" />.
            </summary>
      <param name="tokenRequirement">
            The <see cref="T:System.IdentityModel.Selectors.SecurityTokenRequirement" />.
            </param>
      <param name="outOfBandTokenResolver">
            When this method returns, contains a <see cref="T:System.IdentityModel.Selectors.SecurityTokenResolver" />. This parameter is passed uninitialized.
            </param>
      <returns>
            The <see cref="T:System.IdentityModel.Selectors.SecurityTokenAuthenticator" />.
            </returns>
      <exception cref="T:System.ArgumentNullException">
        <paramref name="tokenRequirement" /> is null.
            </exception>
      <exception cref="T:System.NotSupportedException">
            A security token authenticator cannot be created for the<paramref name=" tokenRequirement" /> that was passed in.
            </exception>
      <exception cref="T:System.ArgumentNullException">
            The <paramref name="tokenRequirement" /> value is <c>null</c>.
            </exception>
    </member>
    <member name="T:Neovolve.Toolkit.Communication.Security.PasswordAuthorizationPolicy">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordAuthorizationPolicy" />
              class is used to set up the security context of a WCF service call
              to allow the <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordIdentity" /> to be made available.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.Security.PasswordAuthorizationPolicy.#ctor(System.String,System.Security.SecureString)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordAuthorizationPolicy" /> class.
            </summary>
      <param name="userName">
            Name of the user.
            </param>
      <param name="password">
            The password.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.Security.PasswordAuthorizationPolicy.Evaluate(System.IdentityModel.Policy.EvaluationContext,System.Object@)">
      <summary>
            Evaluates whether a user meets the requirements for this authorization policy.
            </summary>
      <param name="evaluationContext">
            An <see cref="T:System.IdentityModel.Policy.EvaluationContext" /> that contains the claim set that the authorization policy evaluates.
            </param>
      <param name="state">
            A <see cref="T:System.Object" />, passed by reference that represents the custom state for this authorization policy.
            </param>
      <returns>
        <c>false</c> if the <see cref="M:System.IdentityModel.Policy.IAuthorizationPolicy.Evaluate(System.IdentityModel.Policy.EvaluationContext,System.Object@)" /> method for this authorization policy must be called if additional claims are added by other authorization policies to <paramref name="evaluationContext" />; otherwise, true to state no additional evaluation is required by this authorization policy.
            </returns>
      <exception cref="T:System.ArgumentNullException">
            The <paramref name="evaluationContext" /> value is <c>null</c>.
            </exception>
    </member>
    <member name="P:Neovolve.Toolkit.Communication.Security.PasswordAuthorizationPolicy.Id">
      <summary>
            Gets a string that identifies this authorization component.
            </summary>
      <value>
            The Id of the policy.
            </value>
      <returns>
            A string that identifies this authorization component.
            </returns>
    </member>
    <member name="P:Neovolve.Toolkit.Communication.Security.PasswordAuthorizationPolicy.Issuer">
      <summary>
            Gets a claim set that represents the issuer of the authorization policy.
            </summary>
      <value>
            The issuer of the policy.
            </value>
      <returns>
            A <see cref="T:System.IdentityModel.Claims.ClaimSet" /> that represents the issuer of the authorization policy.
            </returns>
    </member>
    <member name="P:Neovolve.Toolkit.Communication.Security.PasswordAuthorizationPolicy.Password">
      <summary>
            Gets or sets the password.
            </summary>
      <value>
            The password.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Communication.Security.PasswordAuthorizationPolicy.UserName">
      <summary>
            Gets or sets the name of the user.
            </summary>
      <value>
            The name of the user.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Communication.Security.OptionalPasswordValidator">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Communication.Security.OptionalPasswordValidator" />
              class provides a user name password validation implementation that ensures that a user name value has been supplied.
            </summary>
      <remarks>
            This validator allows the password to be optional.
            </remarks>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.Security.OptionalPasswordValidator.Validate(System.String,System.String)">
      <summary>
            Validates the specified user name and password.
            </summary>
      <param name="userName">
            The user name to validate.
            </param>
      <param name="password">
            The password to validate.
            </param>
    </member>
    <member name="T:Neovolve.Toolkit.NamespaceDoc">
      <summary>
            The Neovolve.Toolkit namespace contains classes and namespaces that provided assistance in common development tasks.
            </summary>
    </member>
    <member name="T:Neovolve.Toolkit.Instrumentation.NamespaceDoc">
      <summary>
            The Neovolve.Toolkit.Instrumentation namespace contains classes that provide support for instrumenting applications, such as tracing and logging.
            </summary>
    </member>
    <member name="T:Neovolve.Toolkit.Instrumentation.IActivityWriter">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Instrumentation.IActivityWriter" />
              interface is used to define how instrumentation records are written.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.IActivityWriter.ResumeActivity(System.String,System.Object[])">
      <summary>
            Resumes the activity with the specified message.
            </summary>
      <param name="message">The message.</param>
      <param name="arguments">The arguments.</param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.IActivityWriter.StartActivity(System.String,System.Object[])">
      <summary>
            Starts the activity with the specified message.
            </summary>
      <param name="message">The message.</param>
      <param name="arguments">The arguments.</param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.IActivityWriter.StopActivity(System.String,System.Object[])">
      <summary>
            Stops the activity with the specified message.
            </summary>
      <param name="message">The message.</param>
      <param name="arguments">The arguments.</param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.IActivityWriter.SuspendActivity(System.String,System.Object[])">
      <summary>
            Suspends the activity with the specified message.
            </summary>
      <param name="message">The message.</param>
      <param name="arguments">The arguments.</param>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.IActivityWriter.State">
      <summary>
            Gets the state of the activity.
            </summary>
      <value>
            The state of the activity.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Storage.ConfigurationTypeLoader">
      <summary>
              The <see cref="T:Neovolve.Toolkit.Storage.ConfigurationTypeLoader" />
              class is used to load a type from a configuration value.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ConfigurationTypeLoader.DetermineStoreType(Neovolve.Toolkit.Storage.IConfigurationStore,System.String,System.Type,System.Type)">
      <summary>
              Determines the type of configuration store to create.
            </summary>
      <param name="configurationStore">
              The configuration store.
            </param>
      <param name="configurationKey">
              The configuration key.
            </param>
      <param name="assignableToType">
              The assignable to type.
            </param>
      <param name="defaultType">
              The default type.
            </param>
      <returns>
              A <see cref="T:System.Type" /> instance.
            </returns>
      <exception cref="T:System.TypeLoadException">
              Failed to load the type defined in configuration.
            </exception>
      <exception cref="T:System.InvalidCastException">
              The type defined in configuration is an invalid type.
            </exception>
      <requires description="The configurationStore value is null." exception="T:System.ArgumentNullException">configurationStore != null</requires>
      <exception cref="T:System.ArgumentNullException">configurationStore == null</exception>
      <requires description="The configurationKey value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(configurationKey) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(configurationKey) == false)</exception>
      <requires description="The assignableToType value is null." exception="T:System.ArgumentNullException">assignableToType != null</requires>
      <exception cref="T:System.ArgumentNullException">assignableToType == null</exception>
      <requires description="The defaultType value is null." exception="T:System.ArgumentNullException">defaultType != null</requires>
      <exception cref="T:System.ArgumentNullException">defaultType == null</exception>
    </member>
    <member name="T:Neovolve.Toolkit.Storage.CacheStoreFactory">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Storage.CacheStoreFactory" />
              class is used to create <see cref="T:Neovolve.Toolkit.Storage.ICacheStore" /> instances.
            </summary>
      <remarks>
            The application configuration is used to determine the type of 
              <see cref="T:Neovolve.Toolkit.Storage.ICacheStore" /> to create. The cache key used is <c>StoreType</c> which is defined
              in <see cref="F:Neovolve.Toolkit.Storage.CacheStoreFactory.CacheStoreTypeCacheKey" />.
              If the application configuration does not contain a value, an <see cref="T:Neovolve.Toolkit.Storage.DictionaryCacheStore" /> instance will be returned.
            </remarks>
    </member>
    <member name="F:Neovolve.Toolkit.Storage.CacheStoreFactory.CacheStoreTypeCacheKey">
      <summary>
              Defines the cache key used to obtain the cache store type
              from application configuration.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Storage.CacheStoreFactory._syncLock">
      <summary>
              Stores the object used for locking the class when resolving the store type.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Storage.CacheStoreFactory._storeType">
      <summary>
              Stores the cache store type.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.CacheStoreFactory.Create">
      <summary>
            Creates a <see cref="T:Neovolve.Toolkit.Storage.ICacheStore" /> instance.
            </summary>
      <returns>
            A <see cref="T:Neovolve.Toolkit.Storage.ICacheStore" /> instance.
            </returns>
      <remarks>
            The application configuration is used to determine the type of 
              <see cref="T:Neovolve.Toolkit.Storage.ICacheStore" /> to create. The cache key used is <c>StoreType</c> which is defined
              in <see cref="F:Neovolve.Toolkit.Storage.CacheStoreFactory.CacheStoreTypeCacheKey" />.
              If the application cache does not contain a value, an <see cref="T:Neovolve.Toolkit.Storage.DictionaryCacheStore" /> instance will be returned.
            </remarks>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.CacheStoreFactory.DetermineStoreType">
      <summary>
            Determines the type of the cache store.
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Storage.CacheStoreFactory.StoreType">
      <summary>
              Gets or sets the type of the cache store.
            </summary>
      <value>
              The type of the cache store.
            </value>
      <remarks>
              The application configuration is used to determine the type of 
              <see cref="T:Neovolve.Toolkit.Storage.ICacheStore" /> to create. The cache key used is <c>StoreType</c> which is defined
              in <see cref="F:Neovolve.Toolkit.Storage.CacheStoreFactory.CacheStoreTypeCacheKey" />.
              If the application cache does not contain a value, an <see cref="T:Neovolve.Toolkit.Storage.DictionaryCacheStore" /> instance will be returned.
            </remarks>
    </member>
    <member name="T:Neovolve.Toolkit.Instrumentation.TraceSourceResolverFactory">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Instrumentation.TraceSourceResolverFactory" />
              class is used to create an instance of a <see cref="T:Neovolve.Toolkit.Instrumentation.ITraceSourceResolver" />.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Instrumentation.TraceSourceResolverFactory._resolverType">
      <summary>
            Stores the <see cref="P:Neovolve.Toolkit.Instrumentation.TraceSourceResolverFactory.ResolverType" /> value.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.TraceSourceResolverFactory.Create">
      <summary>
            Creates a <see cref="T:Neovolve.Toolkit.Instrumentation.ITraceSourceResolver" /> instance.
            </summary>
      <returns>
            A <see cref="T:Neovolve.Toolkit.Instrumentation.ITraceSourceResolver" /> instance.
            </returns>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.TraceSourceResolverFactory.ResolverType">
      <summary>
            Gets or sets the type of the resolver.
            </summary>
      <value>
            The type of the resolver.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Instrumentation.ConfigurationResolver">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Instrumentation.ConfigurationResolver" />
              class is used to resolve a collection of 
              <see cref="T:System.Diagnostics.TraceSource" /> instances from application configuration.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Instrumentation.ConfigurationResolver._lock">
      <summary>
            Stores the lock used to reference the <see cref="P:Neovolve.Toolkit.Instrumentation.ConfigurationResolver.TraceSourceNames" /> property.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ConfigurationResolver.Reload">
      <summary>
            Reloads the <see cref="T:System.Diagnostics.TraceSource" /> names and instances available from the resolver.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ConfigurationResolver.Resolve(System.String,System.StringComparison)">
      <summary>
            Resolves a <see cref="T:System.Diagnostics.TraceSource" /> using the specified name and string comparison.
            </summary>
      <param name="name">
            The name of the <see cref="T:System.Diagnostics.TraceSource" />.
            </param>
      <param name="comparison">
            The string comparison to apply.
            </param>
      <returns>
            A <see cref="T:System.Diagnostics.TraceSource" /> instance or <c>null</c> if the name is not found.
            </returns>
      <requires description="The name value is null, empty or only contains whitespace characters" inheritedFrom="M:Neovolve.Toolkit.Instrumentation.ITraceSourceResolver.Resolve(System.String,System.StringComparison)" inheritedFromTypeName="ITraceSourceResolver" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(name) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(name) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ConfigurationResolver.ResolveNames">
      <summary>
            Resolves the available <see cref="T:System.Diagnostics.TraceSource" /> names.
            </summary>
      <returns>
            A <see cref="T:System.Collections.ObjectModel.Collection`1" /> instance.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ConfigurationResolver.ResolveFromConfiguration">
      <summary>
            Resolves the source names from configuration.
            </summary>
      <returns>
            A <see cref="T:System.Collections.ObjectModel.Collection`1" /> instance.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ConfigurationResolver.ResolveFromSection(System.Configuration.ConfigurationSection)">
      <summary>
            Resolves the source names from the section.
            </summary>
      <param name="section">
            The section.
            </param>
      <returns>
            A <see cref="T:System.Collections.ObjectModel.Collection`1" /> instance.
            </returns>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.ConfigurationResolver.TraceSourceNames">
      <summary>
            Gets or sets the trace source names.
            </summary>
      <value>
            The trace source names.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.ConfigurationResolver.ChildResolver">
      <summary>
            Gets the child resolver.
            </summary>
      <value>
            The child resolver or <c>null</c> if there is no child resolver.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Storage.DictionaryCacheStore">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Storage.DictionaryCacheStore" />
              class is used to provide a <see cref="T:Neovolve.Toolkit.Storage.ICacheStore" />
              implementation that leverages a <see cref="T:System.Collections.Generic.Dictionary`2" /> instance.
            </summary>
      <threadsafety instance="true" />
    </member>
    <member name="F:Neovolve.Toolkit.Storage.DictionaryCacheStore._cache">
      <summary>
            Stores the cache instance.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Storage.DictionaryCacheStore._lock">
      <summary>
            Stores the lock used for thread safety.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.DictionaryCacheStore.AddItem(System.String,System.Object,Neovolve.Toolkit.Storage.IExpirationPolicy[])">
      <summary>
            Adds the item to the cache.
            </summary>
      <param name="key">
            The cache key.
            </param>
      <param name="item">
            The cache item.
            </param>
      <param name="policySetSet">
            The policy set.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.DictionaryCacheStore.ClearCache">
      <summary>
            Clears the items from the cache.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.DictionaryCacheStore.ContainsItem(System.String)">
      <summary>
            Checks if the cache contains the item identified by the key.
            </summary>
      <param name="key">
            The cache key.
            </param>
      <returns>
            A <see cref="T:System.Boolean" /> instance.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.DictionaryCacheStore.ReadItem(System.String)">
      <summary>
            Reads the item from the cache using the specified key.
            </summary>
      <param name="key">
            The cache key.
            </param>
      <returns>
            A <see cref="T:System.Object" /> instance.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.DictionaryCacheStore.ReadKeys">
      <summary>
            Reads the cache keys.
            </summary>
      <returns>
            A <see cref="T:System.String" /> array instance.
            </returns>
      <ensures inheritedFrom="M:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase.ReadKeys" inheritedFromTypeName="ExpirationCacheStoreBase">Contract.Result&lt;Collection&lt;String&gt;&gt;() != null</ensures>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.DictionaryCacheStore.RemoveItem(System.String)">
      <summary>
            Removes the item from the cache.
            </summary>
      <param name="key">
            The cache key.
            </param>
      <returns>
            A <see cref="T:System.Object" /> instance.
            </returns>
      <requires description="The key value is null, empty or only contains whitespace characters" inheritedFrom="M:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase.RemoveItem(System.String)" inheritedFromTypeName="ExpirationCacheStoreBase" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(key) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(key) == false)</exception>
    </member>
    <member name="P:Neovolve.Toolkit.Storage.DictionaryCacheStore.ItemCount">
      <summary>
            Gets the item count.
            </summary>
      <value>
            The item count.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Threading.LockWriter">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Threading.LockWriter" />
              class is used to provide thread safe write access to a resource using a provided
              <see cref="T:System.Threading.ReaderWriterLock" /> or <see cref="T:System.Threading.ReaderWriterLockSlim" /> instance.
            </summary>
      <remarks>
        <para>
          <see cref="T:System.Threading.ReaderWriterLockSlim" />
        is recommended for use instead of
        <see cref="T:System.Threading.ReaderWriterLock" />
        .
        <see cref="T:System.Threading.ReaderWriterLockSlim" />
        has simplified lock recursion rules and is less likely to result in deadlock scenarios.
      </para>
        <note>
        The
        <see cref="T:Neovolve.Toolkit.Threading.LockReader" />
        and
        <see cref="T:Neovolve.Toolkit.Threading.LockWriter" />
        classes encapsulate the logic of requesting, entering
        and exiting locks using the provided lock reference.
        Lock references (
        <see cref="T:System.Threading.ReaderWriterLock" />
        and
        <see cref="T:System.Threading.ReaderWriterLockSlim" />
        )
        provided to these classes should not have their release/exit lock methods manually invoked in
        user code as they maintain their own internal lock counters.
        <see cref="T:Neovolve.Toolkit.Threading.LockReader" />
        and
        <see cref="T:Neovolve.Toolkit.Threading.LockWriter" />
        will release their relevant locks when they are disposed.
        See the example below for incorrect usage of these classes.
      </note>
        <para>
        Calling
        <see cref="M:Neovolve.Toolkit.Threading.LockWriter.Dispose" />
        manually is supported but not recommended.
        The
        <see cref="T:Neovolve.Toolkit.Threading.LockReader" />
        /
        <see cref="T:Neovolve.Toolkit.Threading.LockWriter" />
        knows internally that it is already disposed and won't release the lock again.
        In this situation, the code between the Dispose() and the instance going out of scope
        will not be protected with the lock obtained by that instance.
      </para>
        <para>
        Never invoke the lock release/exit methods on the lock reference directly. In this case,
        <see cref="T:Neovolve.Toolkit.Threading.LockReader" />
        and
        <see cref="T:Neovolve.Toolkit.Threading.LockWriter" />
        are not aware that the lock has already been released
        and will attempt to release the lock when it is disposed. Where recursive locks are obtained, this may not have
        a great affect, but debugging locking problems will become difficult. Greater risk is encountered
        where the first lock in a recursive chain is released by a child lock as per the incorrect usage example below.
      </para>
        <para>
        The
        <see cref="T:Neovolve.Toolkit.Threading.LockReader" />
        and
        <see cref="T:Neovolve.Toolkit.Threading.LockWriter" />
        classes are best used with a using statement.
        The using statement ensures that the
        <see cref="T:Neovolve.Toolkit.Threading.LockReader" />
        and
        <see cref="T:Neovolve.Toolkit.Threading.LockWriter" />
        instances are disposed and exit their relevant locks even when exceptions are encountered.
        Manually disposing of
        <see cref="T:Neovolve.Toolkit.Threading.LockReader" />
        and
        <see cref="T:Neovolve.Toolkit.Threading.LockWriter" />
        instances is supported,
        but the locks held will be released.
        The using statement also provides a syntax to easily understand the scope of a lock.
      </para>
      </remarks>
      <threadsafety instance="true" />
      <example>
        <para>
        This example demonstrates how to use
        <see cref="T:Neovolve.Toolkit.Threading.LockReader" />
        and
        <see cref="T:Neovolve.Toolkit.Threading.LockWriter" />
        with a
        <see cref="T:System.Threading.ReaderWriterLockSlim" />
        lock instance to read and write to a resource in a thread safe manner. This example also shows how
        a read lock can be upgraded to write lock.
      </para>
        <code lang="C#" title="ReaderWriterLockSlim example"><![CDATA[
using System;
using System.Collections.Generic;
using System.Threading;
using Neovolve.Toolkit.Threading;

namespace ConsoleApplication1
{
    internal class Program
    {
        private static readonly Dictionary<String, String> DataStore = new Dictionary<String, String>();

        private static readonly ReaderWriterLockSlim DataStoreLock = new ReaderWriterLockSlim();

        private static void Main(String[] args)
        {
            // Acquire a write lock
            // In this case we are assuming that the item is not already in the store so we go straight to a write lock
            using (new LockWriter(DataStoreLock))
            {
                const String FirstKey = "SomeKey";

                // Check if the key exists
                if (DataStore.ContainsKey(FirstKey) == false)
                {
                    // Write the entry to the store
                    DataStore.Add(FirstKey, Guid.NewGuid().ToString());
                }
            }

            // Check if there is another value
            // Acquire a read lock so we can check if the key is in the store
            using (new LockReader(DataStoreLock, true))
            {
                const String SecondKey = "AnotherKey";

                // Check if the key is already in the store
                // This check is for performance, multiple threads can hold a read lock but only one thread can hold a write lock. 
                // We don't want to block other threads so we can check if the key exists
                if (DataStore.ContainsKey(SecondKey) == false)
                {
                    // Acquire a write lock
                    using (new LockWriter(DataStoreLock))
                    {
                        // Run the check again to cover cases where multiple threads entered the previous if statement in the read lock
                        // This check is for safety
                        if (DataStore.ContainsKey(SecondKey) == false)
                        {
                            // Add the item to the store
                            DataStore.Add(SecondKey, Guid.NewGuid().ToString());
                        }
                    }
                }
            }
        }
    }
}]]></code>
        <para>
        This example demonstrates how to use
        <see cref="T:Neovolve.Toolkit.Threading.LockReader" />
        and
        <see cref="T:Neovolve.Toolkit.Threading.LockWriter" />
        with a
        <see cref="T:System.Threading.ReaderWriterLock" />
        lock instance to read and write to a resource in a thread safe manner. This example also shows how
        a read lock can be upgraded to write lock.
      </para>
        <code lang="C#" title="ReaderWriterLock example"><![CDATA[
using System;
using System.Collections.Generic;
using System.Threading;
using Neovolve.Toolkit.Threading;

namespace ConsoleApplication1
{
    internal class Program
    {
        private static readonly Dictionary<String, String> DataStore = new Dictionary<String, String>();

        private static readonly ReaderWriterLock DataStoreLock = new ReaderWriterLock();

        private static void Main(String[] args)
        {
            // Acquire a write lock
            // In this case we are assuming that the item is not already in the store so we go straight to a write lock
            using (new LockWriter(DataStoreLock))
            {
                const String FirstKey = "SomeKey";

                // Check if the key exists
                if (DataStore.ContainsKey(FirstKey) == false)
                {
                    // Write the entry to the store
                    DataStore.Add(FirstKey, Guid.NewGuid().ToString());
                }
            }

            // Check if there is another value
            // Acquire a read lock so we can check if the key is in the store
            using (new LockReader(DataStoreLock))
            {
                const String SecondKey = "AnotherKey";

                // Check if the key is already in the store
                // This check is for performance, multiple threads can hold a read lock but only one thread can hold a write lock. 
                // We don't want to block other threads so we can check if the key exists
                if (DataStore.ContainsKey(SecondKey) == false)
                {
                    // Acquire a write lock
                    using (new LockWriter(DataStoreLock))
                    {
                        // Run the check again to cover cases where multiple threads entered the previous if statement in the read lock
                        // This check is for safety
                        if (DataStore.ContainsKey(SecondKey) == false)
                        {
                            // Add the item to the store
                            DataStore.Add(SecondKey, Guid.NewGuid().ToString());
                        }
                    }
                }
            }
        }
    }
}]]></code>
        <para>
        The following code shows the incorrect usage of
        <see cref="T:Neovolve.Toolkit.Threading.LockReader" />
        and
        <see cref="T:Neovolve.Toolkit.Threading.LockWriter" />
        .
        The code manually releases a lock external to
        <see cref="T:Neovolve.Toolkit.Threading.LockReader" />
        which requested the lock.
      </para>
        <code lang="C#" title="Incorrect usage"><![CDATA[
    ReaderWriterLock lockReference = new ReaderWriterLock();
  
    using (new LockReader(lockReference))
    {
        using (LockReader reader = new LockReader(lockReference))
        {
            using (new LockWriter(lockReference))
            {
            }
            
            // Either of the following methods will decrement the read lock count
            // before LockReader goes out of scope
            lockReference.ReleaseReaderLock();
            // or reader.Dispose()            
        }
        
        // DANGER!
        // As the previous child lock has manually released the lock directly on lockReference,
        // this outer LockReader is no longer protected by a read lock
        // The dispose of the this instance will attempt to check for the existence of a lock 
        // before releasing a lock that no longer exists.
    }          
          ]]></code>
      </example>
    </member>
    <member name="M:Neovolve.Toolkit.Threading.LockWriter.#ctor(System.Threading.ReaderWriterLockSlim)">
      <overloads>
        <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Threading.LockWriter" /> class.
              </summary>
      </overloads>
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Threading.LockWriter" /> class using the provided lock reference.
            </summary>
      <param name="lockReference">
            The lock reference.
            </param>
      <remarks>
        <para>
        As no timeout value is supplied, this call will block indefinitely until the lock is entered.
      </para>
      </remarks>
      <exception cref="T:System.ArgumentNullException">
        No
        <paramref name="lockReference" />
        was provided.
      </exception>
      <exception cref="T:System.Threading.LockRecursionException">
        The
        <see cref="P:System.Threading.ReaderWriterLockSlim.RecursionPolicy" />
        property is
        <see cref="F:System.Threading.LockRecursionPolicy.NoRecursion" />
        and the current thread has already entered the lock.
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Threading.LockWriter.#ctor(System.Threading.ReaderWriterLockSlim,System.Int32)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Threading.LockWriter" /> class using the provided lock reference and timeout value.
            </summary>
      <param name="lockReference">
            The lock reference.
            </param>
      <param name="timeout">
            The timeout value within which the lock must be entered, measured in milliseconds.
            </param>
      <exception cref="T:System.ArgumentNullException">
        No
        <paramref name="lockReference" />
        was provided.
      </exception>
      <exception cref="T:System.ArgumentOutOfRangeException">
        The value of
        <paramref name="timeout" />
        is negative,  but it is not equal to
        <see cref="F:System.Threading.Timeout.Infinite" />
        (-1), which is the only negative value allowed.
      </exception>
      <exception cref="T:System.Threading.LockRecursionException">
        The
        <see cref="P:System.Threading.ReaderWriterLockSlim.RecursionPolicy" />
        property is
        <see cref="F:System.Threading.LockRecursionPolicy.NoRecursion" />
        and the current thread has already entered the lock.
      </exception>
      <exception cref="T:System.TimeoutException">
        The
        <paramref name="timeout" />
        value specified has been reached and the lock was not obtained.
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Threading.LockWriter.#ctor(System.Threading.ReaderWriterLock)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Threading.LockWriter" /> class using the provided lock reference.
            </summary>
      <param name="lockReference">
            The lock reference.
            </param>
      <remarks>
        <note>
        Where possible, use a
        <see cref="T:System.Threading.ReaderWriterLockSlim" />
        instance for the
        <paramref name="lockReference" />
        value.
        <see cref="T:System.Threading.ReaderWriterLockSlim" />
        has simplified lock recursion rules and is less likely to result in deadlock scenarios.
      </note>
        <para>
        As no timeout value is supplied, this call will block indefinitely until the lock is entered.
      </para>
      </remarks>
      <exception cref="T:System.ArgumentNullException">
        No
        <paramref name="lockReference" />
        was provided.
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Threading.LockWriter.#ctor(System.Threading.ReaderWriterLock,System.Int32)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Threading.LockWriter" /> class using the provided lock reference and timeout value.
            </summary>
      <param name="lockReference">
            The lock reference.
            </param>
      <param name="timeout">
            The timeout value within which the lock must be entered, measured in milliseconds.
            </param>
      <remarks>
        <note>
        Where possible, use a
        <see cref="T:System.Threading.ReaderWriterLockSlim" />
        instance for the
        <paramref name="lockReference" />
        value.
        <see cref="T:System.Threading.ReaderWriterLockSlim" />
        has simplified lock recursion rules and is less likely to result in deadlock scenarios.
      </note>
      </remarks>
      <exception cref="T:System.ArgumentNullException">
        No
        <paramref name="lockReference" />
        was provided.
      </exception>
      <exception cref="T:System.TimeoutException">
        The
        <paramref name="timeout" />
        value specified has been reached and the lock was not obtained.
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Threading.LockWriter.Dispose">
      <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
      <remarks>
            The <see cref="M:Neovolve.Toolkit.Threading.LockWriter.Dispose" /> method releases the lock that was acquired by this instance. 
              If an upgraded lock was obtained, the write lock is downgraded to a read lock.
            </remarks>
    </member>
    <member name="P:Neovolve.Toolkit.Threading.LockWriter.Cookie">
      <summary>
            Gets or sets the cookie.
            </summary>
      <value>
            The cookie.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Threading.LockWriter.Disposed">
      <summary>
            Gets or sets a value indicating whether this <see cref="T:Neovolve.Toolkit.Threading.LockWriter" /> is disposed.
            </summary>
      <value>
        <c>true</c> if disposed; otherwise, <c>false</c>.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Threading.LockWriter.LockReference">
      <summary>
            Gets or sets the lock reference.
            </summary>
      <value>
            The lock reference.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Threading.LockWriter.LockReferenceSlim">
      <summary>
            Gets or sets the lock reference slim.
            </summary>
      <value>
            The lock reference slim.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Threading.LockReader">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Threading.LockReader" />
              class is used to provide thread safe read access to a resource using a provided 
              <see cref="T:System.Threading.ReaderWriterLock" /> or <see cref="T:System.Threading.ReaderWriterLockSlim" /> instance.
            </summary>
      <remarks>
        <para>
          <see cref="T:System.Threading.ReaderWriterLockSlim" />
        is recommended for use instead of
        <see cref="T:System.Threading.ReaderWriterLock" />
        .
        <see cref="T:System.Threading.ReaderWriterLockSlim" />
        has simplified lock recursion rules and is less likely to result in deadlock scenarios.
      </para>
        <note>
        The
        <see cref="T:Neovolve.Toolkit.Threading.LockReader" />
        and
        <see cref="T:Neovolve.Toolkit.Threading.LockWriter" />
        classes encapsulate the logic of requesting, entering
        and exiting locks using the provided lock reference.
        Lock references (
        <see cref="T:System.Threading.ReaderWriterLock" />
        and
        <see cref="T:System.Threading.ReaderWriterLockSlim" />
        )
        provided to these classes should not have their release/exit lock methods manually invoked in
        user code as they maintain their own internal lock counters.
        <see cref="T:Neovolve.Toolkit.Threading.LockReader" />
        and
        <see cref="T:Neovolve.Toolkit.Threading.LockWriter" />
        will release their relevant locks when they are disposed.
        See the example below for incorrect usage of these classes.
      </note>
        <para>
        Calling
        <see cref="M:Neovolve.Toolkit.Threading.LockReader.Dispose" />
        manually is supported but not recommended.
        The
        <see cref="T:Neovolve.Toolkit.Threading.LockReader" />
        /
        <see cref="T:Neovolve.Toolkit.Threading.LockWriter" />
        knows internally that it is already disposed and won't release the lock again.
        In this situation, the code between the Dispose() and the instance going out of scope
        will not be protected with the lock obtained by that instance.
      </para>
        <para>
        Never invoke the lock release/exit methods on the lock reference directly. In this case,
        <see cref="T:Neovolve.Toolkit.Threading.LockReader" />
        and
        <see cref="T:Neovolve.Toolkit.Threading.LockWriter" />
        are not aware that the lock has already been released
        and will attempt to release the lock when it is disposed. Where recursive locks are obtained, this may not have
        a great affect, but debugging locking problems will become difficult. Greater risk is encountered
        where the first lock in a recursive chain is released by a child lock as per the incorrect usage example below.
      </para>
        <para>
        The
        <see cref="T:Neovolve.Toolkit.Threading.LockReader" />
        and
        <see cref="T:Neovolve.Toolkit.Threading.LockWriter" />
        classes are best used with a using statement.
        The using statement ensures that the
        <see cref="T:Neovolve.Toolkit.Threading.LockReader" />
        and
        <see cref="T:Neovolve.Toolkit.Threading.LockWriter" />
        instances are disposed and exit their relevant locks even when exceptions are encountered.
        Manually disposing of
        <see cref="T:Neovolve.Toolkit.Threading.LockReader" />
        and
        <see cref="T:Neovolve.Toolkit.Threading.LockWriter" />
        instances is supported,
        but the locks held will be released.
        The using statement also provides a syntax to easily understand the scope of a lock.
      </para>
      </remarks>
      <threadsafety instance="true" />
      <example>
        <para>
        This example demonstrates how to use
        <see cref="T:Neovolve.Toolkit.Threading.LockReader" />
        and
        <see cref="T:Neovolve.Toolkit.Threading.LockWriter" />
        with a
        <see cref="T:System.Threading.ReaderWriterLockSlim" />
        lock instance to read and write to a resource in a thread safe manner. This example also shows how
        a read lock can be upgraded to write lock.
      </para>
        <code lang="C#" title="ReaderWriterLockSlim example"><![CDATA[
using System;
using System.Collections.Generic;
using System.Threading;
using Neovolve.Toolkit.Threading;

namespace ConsoleApplication1
{
    internal class Program
    {
        private static readonly Dictionary<String, String> DataStore = new Dictionary<String, String>();

        private static readonly ReaderWriterLockSlim DataStoreLock = new ReaderWriterLockSlim();

        private static void Main(String[] args)
        {
            // Acquire a write lock
            // In this case we are assuming that the item is not already in the store so we go straight to a write lock
            using (new LockWriter(DataStoreLock))
            {
                const String FirstKey = "SomeKey";

                // Check if the key exists
                if (DataStore.ContainsKey(FirstKey) == false)
                {
                    // Write the entry to the store
                    DataStore.Add(FirstKey, Guid.NewGuid().ToString());
                }
            }

            // Check if there is another value
            // Acquire a read lock so we can check if the key is in the store
            using (new LockReader(DataStoreLock, true))
            {
                const String SecondKey = "AnotherKey";

                // Check if the key is already in the store
                // This check is for performance, multiple threads can hold a read lock but only one thread can hold a write lock. 
                // We don't want to block other threads so we can check if the key exists
                if (DataStore.ContainsKey(SecondKey) == false)
                {
                    // Acquire a write lock
                    using (new LockWriter(DataStoreLock))
                    {
                        // Run the check again to cover cases where multiple threads entered the previous if statement in the read lock
                        // This check is for safety
                        if (DataStore.ContainsKey(SecondKey) == false)
                        {
                            // Add the item to the store
                            DataStore.Add(SecondKey, Guid.NewGuid().ToString());
                        }
                    }
                }
            }
        }
    }
}]]></code>
        <para>
        This example demonstrates how to use
        <see cref="T:Neovolve.Toolkit.Threading.LockReader" />
        and
        <see cref="T:Neovolve.Toolkit.Threading.LockWriter" />
        with a
        <see cref="T:System.Threading.ReaderWriterLock" />
        lock instance to read and write to a resource in a thread safe manner. This example also shows how
        a read lock can be upgraded to write lock.
      </para>
        <code lang="C#" title="ReaderWriterLock example"><![CDATA[
using System;
using System.Collections.Generic;
using System.Threading;
using Neovolve.Toolkit.Threading;

namespace ConsoleApplication1
{
    internal class Program
    {
        private static readonly Dictionary<String, String> DataStore = new Dictionary<String, String>();

        private static readonly ReaderWriterLock DataStoreLock = new ReaderWriterLock();

        private static void Main(String[] args)
        {
            // Acquire a write lock
            // In this case we are assuming that the item is not already in the store so we go straight to a write lock
            using (new LockWriter(DataStoreLock))
            {
                const String FirstKey = "SomeKey";

                // Check if the key exists
                if (DataStore.ContainsKey(FirstKey) == false)
                {
                    // Write the entry to the store
                    DataStore.Add(FirstKey, Guid.NewGuid().ToString());
                }
            }

            // Check if there is another value
            // Acquire a read lock so we can check if the key is in the store
            using (new LockReader(DataStoreLock))
            {
                const String SecondKey = "AnotherKey";

                // Check if the key is already in the store
                // This check is for performance, multiple threads can hold a read lock but only one thread can hold a write lock. 
                // We don't want to block other threads so we can check if the key exists
                if (DataStore.ContainsKey(SecondKey) == false)
                {
                    // Acquire a write lock
                    using (new LockWriter(DataStoreLock))
                    {
                        // Run the check again to cover cases where multiple threads entered the previous if statement in the read lock
                        // This check is for safety
                        if (DataStore.ContainsKey(SecondKey) == false)
                        {
                            // Add the item to the store
                            DataStore.Add(SecondKey, Guid.NewGuid().ToString());
                        }
                    }
                }
            }
        }
    }
}]]></code>
        <para>
        The following code shows the incorrect usage of
        <see cref="T:Neovolve.Toolkit.Threading.LockReader" />
        and
        <see cref="T:Neovolve.Toolkit.Threading.LockWriter" />
        .
        The code manually releases a lock external to
        <see cref="T:Neovolve.Toolkit.Threading.LockReader" />
        which requested the lock.
      </para>
        <code lang="C#" title="Incorrect usage"><![CDATA[
    ReaderWriterLock lockReference = new ReaderWriterLock();
  
    using (new LockReader(lockReference))
    {
        using (LockReader reader = new LockReader(lockReference))
        {
            using (new LockWriter(lockReference))
            {
            }
            
            // Either of the following methods will decrement the read lock count
            // before LockReader goes out of scope
            lockReference.ReleaseReaderLock();
            // or reader.Dispose()            
        }
        
        // DANGER!
        // As the previous child lock has manually released the lock directly on lockReference,
        // this outer LockReader is no longer protected by a read lock
        // The dispose of the this instance will attempt to check for the existence of a lock 
        // before releasing a lock that no longer exists.
    }          
          ]]></code>
      </example>
    </member>
    <member name="M:Neovolve.Toolkit.Threading.LockReader.#ctor(System.Threading.ReaderWriterLockSlim)">
      <overloads>
        <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Threading.LockReader" /> class.
              </summary>
      </overloads>
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Threading.LockReader" /> class using the provided lock reference.
            </summary>
      <param name="lockReference">
            The lock reference.
            </param>
      <remarks>
        <para>This constructor acquires a read lock that is not upgradeable to a write lock.</para>
        <para>
        Unlike
        <see cref="T:System.Threading.ReaderWriterLock" />
        , usage of a
        <see cref="T:System.Threading.ReaderWriterLockSlim" />
        instance
        must explicitly indicate whether a standard read lock or an upgradeable read lock is requested.
        Only an upgradeable read lock can be upgraded to a write lock. See
        <see cref="M:System.Threading.ReaderWriterLockSlim.EnterUpgradeableReadLock" />
        for further information.
      </para>
        <para>
        As no timeout value is supplied, this call will block indefinitely until the lock is entered.
      </para>
      </remarks>
      <exception cref="T:System.ArgumentNullException">
        No
        <paramref name="lockReference" />
        was provided.
      </exception>
      <exception cref="T:System.Threading.LockRecursionException">
        The
        <see cref="P:System.Threading.ReaderWriterLockSlim.RecursionPolicy" />
        property is
        <see cref="F:System.Threading.LockRecursionPolicy.NoRecursion" />
        and the current thread has already entered the lock.
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Threading.LockReader.#ctor(System.Threading.ReaderWriterLockSlim,System.Int32)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Threading.LockReader" /> class using the provided lock reference and timeout value.
            </summary>
      <param name="lockReference">
            The lock reference.
            </param>
      <param name="timeout">
            The timeout value within which the lock must be entered, measured in milliseconds.
            </param>
      <remarks>
        <para>This constructor acquires a read lock that is not upgradeable to a write lock.</para>
        <para>
        Unlike
        <see cref="T:System.Threading.ReaderWriterLock" />
        , usage of a
        <see cref="T:System.Threading.ReaderWriterLockSlim" />
        instance
        must explicitly indicate whether a standard read lock or an upgradeable read lock is requested.
        Only an upgradeable read lock can be upgraded to a write lock. See
        <see cref="M:System.Threading.ReaderWriterLockSlim.EnterUpgradeableReadLock" />
        for further information.
      </para>
      </remarks>
      <exception cref="T:System.ArgumentNullException">
        No
        <paramref name="lockReference" />
        was provided.
      </exception>
      <exception cref="T:System.ArgumentOutOfRangeException">
        The value of
        <paramref name="timeout" />
        is negative,  but it is not equal to
        <see cref="F:System.Threading.Timeout.Infinite" />
        (-1), which is the only negative value allowed.
      </exception>
      <exception cref="T:System.Threading.LockRecursionException">
        The
        <see cref="P:System.Threading.ReaderWriterLockSlim.RecursionPolicy" />
        property is
        <see cref="F:System.Threading.LockRecursionPolicy.NoRecursion" />
        and the current thread has already entered the lock.
      </exception>
      <exception cref="T:System.TimeoutException">
        The
        <paramref name="timeout" />
        value specified has been reached and the lock was not obtained.
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Threading.LockReader.#ctor(System.Threading.ReaderWriterLockSlim,System.Boolean)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Threading.LockReader" /> class using the provided lock reference and lock upgrade flag.
            </summary>
      <param name="lockReference">
            The lock reference.
            </param>
      <param name="obtainUpgradeableLock">
        <c>true</c> to obtain an upgradeable lock; otherwise <c>false</c>.
            </param>
      <remarks>
        <para>
        Unlike
        <see cref="T:System.Threading.ReaderWriterLock" />
        , usage of a
        <see cref="T:System.Threading.ReaderWriterLockSlim" />
        instance
        must explicitly indicate whether a standard read lock or an upgradeable read lock is requested.
        Only an upgradeable read lock can be upgraded to a write lock. See
        <see cref="M:System.Threading.ReaderWriterLockSlim.EnterUpgradeableReadLock" />
        for further information.
      </para>
        <para>
        As no timeout value is supplied, this call will block indefinitely until the lock is entered.
      </para>
      </remarks>
      <exception cref="T:System.ArgumentNullException">
        No
        <paramref name="lockReference" />
        was provided.
      </exception>
      <exception cref="T:System.Threading.LockRecursionException">
        The
        <see cref="P:System.Threading.ReaderWriterLockSlim.RecursionPolicy" />
        property is
        <see cref="F:System.Threading.LockRecursionPolicy.NoRecursion" />
        and the current thread has already entered the lock.
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Threading.LockReader.#ctor(System.Threading.ReaderWriterLockSlim,System.Int32,System.Boolean)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Threading.LockReader" /> class using the provided lock reference, timeout value and lock upgrade flag.
            </summary>
      <param name="lockReference">
            The lock reference.
            </param>
      <param name="timeout">
            The timeout value within which the lock must be entered, measured in milliseconds.
            </param>
      <param name="obtainUpgradeableLock">
        <c>true</c> to obtain an upgradeable lock; otherwise <c>false</c>.
            </param>
      <remarks>
        <para>
        Unlike
        <see cref="T:System.Threading.ReaderWriterLock" />
        , usage of a
        <see cref="T:System.Threading.ReaderWriterLockSlim" />
        instance
        must explicitly indicate whether a standard read lock or an upgradeable read lock is requested.
        Only an upgradeable read lock can be upgraded to a write lock. See
        <see cref="M:System.Threading.ReaderWriterLockSlim.EnterUpgradeableReadLock" />
        for further information.
      </para>
      </remarks>
      <exception cref="T:System.ArgumentNullException">
        No
        <paramref name="lockReference" />
        was provided.
      </exception>
      <exception cref="T:System.ArgumentOutOfRangeException">
        The value of
        <paramref name="timeout" />
        is negative,  but it is not equal to
        <see cref="F:System.Threading.Timeout.Infinite" />
        (-1), which is the only negative value allowed.
      </exception>
      <exception cref="T:System.Threading.LockRecursionException">
        The
        <see cref="P:System.Threading.ReaderWriterLockSlim.RecursionPolicy" />
        property is
        <see cref="F:System.Threading.LockRecursionPolicy.NoRecursion" />
        and the current thread has already entered the lock.
      </exception>
      <exception cref="T:System.TimeoutException">
        The
        <paramref name="timeout" />
        value specified has been reached and the lock was not obtained.
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Threading.LockReader.#ctor(System.Threading.ReaderWriterLock)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Threading.LockReader" /> class using the provided lock reference.
            </summary>
      <param name="lockReference">
            The lock reference.
            </param>
      <remarks>
        <note>
        Where possible, use a
        <see cref="T:System.Threading.ReaderWriterLockSlim" />
        instance for the
        <paramref name="lockReference" />
        value.
        <see cref="T:System.Threading.ReaderWriterLockSlim" />
        has simplified lock recursion rules and is less likely to result in deadlock scenarios.
      </note>
        <para>
        As no timeout value is supplied, this call will block indefinitely until the lock is entered.
      </para>
      </remarks>
      <exception cref="T:System.ArgumentNullException">
        No
        <paramref name="lockReference" />
        was provided.
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Threading.LockReader.#ctor(System.Threading.ReaderWriterLock,System.Int32)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Threading.LockReader" /> class using the provided lock reference and timeout value.
            </summary>
      <param name="lockReference">
            The lock reference.
            </param>
      <param name="timeout">
            The timeout value within which the lock must be entered, measured in milliseconds.
            </param>
      <remarks>
        <note>
        Where possible, use a
        <see cref="T:System.Threading.ReaderWriterLockSlim" />
        instance for the
        <paramref name="lockReference" />
        value.
        <see cref="T:System.Threading.ReaderWriterLockSlim" />
        has simplified lock recursion rules and is less likely to result in deadlock scenarios.
      </note>
      </remarks>
      <exception cref="T:System.ArgumentNullException">
        No
        <paramref name="lockReference" />
        was provided.
      </exception>
      <exception cref="T:System.TimeoutException">
        The
        <paramref name="timeout" />
        value specified has been reached and the lock was not obtained.
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Threading.LockReader.Dispose">
      <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
      <remarks>
            The <see cref="M:Neovolve.Toolkit.Threading.LockReader.Dispose" /> method releases the lock that was acquired by this instance.
            </remarks>
    </member>
    <member name="P:Neovolve.Toolkit.Threading.LockReader.Disposed">
      <summary>
            Gets or sets a value indicating whether this <see cref="T:Neovolve.Toolkit.Threading.LockReader" /> is disposed.
            </summary>
      <value>
        <c>true</c> if disposed; otherwise, <c>false</c>.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Threading.LockReader.LockReference">
      <summary>
            Gets or sets the lock reference.
            </summary>
      <value>
            The lock reference.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Threading.LockReader.LockReferenceSlim">
      <summary>
            Gets or sets the lock reference slim.
            </summary>
      <value>
            The lock reference slim.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Threading.LockReader.UpgradableLockRequested">
      <summary>
            Gets or sets a value indicating whether an upgradable lock was requested.
            </summary>
      <value>
        <c>true</c> if an upgradable lock was requested; otherwise, <c>false</c>.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Instrumentation.ActivityTrace">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Instrumentation.ActivityTrace" />
              class is used to trace related sets of activities in applications.
            </summary>
    </member>
    <member name="T:Neovolve.Toolkit.Instrumentation.RecordTrace">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Instrumentation.RecordTrace" />
              class is used to trace record information.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Instrumentation.RecordTrace.EnabledConfigurationKey">
      <summary>
            Defines the configuration key used to load the value for the <see cref="P:Neovolve.Toolkit.Instrumentation.RecordTrace.Enabled" /> property.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Instrumentation.RecordTrace.ThrowOnSourceFailureConfigurationKey">
      <summary>
            Defines the configuration key used to load the value for the <see cref="P:Neovolve.Toolkit.Instrumentation.RecordTrace.ThrowOnSourceFailure" /> property.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Instrumentation.RecordTrace._source">
      <summary>
            Stores the Source value.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.RecordTrace.#cctor">
      <summary>
            Initializes static members of the <see cref="T:Neovolve.Toolkit.Instrumentation.RecordTrace" /> class.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.RecordTrace.#ctor">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.RecordTrace" /> class.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.RecordTrace.#ctor(System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.RecordTrace" /> class.
            </summary>
      <param name="traceSourceName">
            Name of the trace source.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.RecordTrace.#ctor(System.String,Neovolve.Toolkit.Instrumentation.ITraceSourceResolver)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.RecordTrace" /> class.
            </summary>
      <param name="traceSourceName">
            Name of the trace source.
            </param>
      <param name="resolver">
            The <see cref="T:System.Diagnostics.TraceSource" /> resolver.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.RecordTrace.#ctor(System.Diagnostics.TraceSource)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.RecordTrace" /> class.
            </summary>
      <param name="source">
            The source.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.RecordTrace.#ctor(System.String,Neovolve.Toolkit.Instrumentation.ITraceSourceResolver,System.Boolean)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.RecordTrace" /> class.
            </summary>
      <param name="traceSourceName">
            Name of the trace source.
            </param>
      <param name="resolver">
            The resolver.
            </param>
      <param name="throwOnSourceLoadFailure">
            If set to <c>true</c> and exception will be thrown if the source cannot be loaded.
            </param>
      <remarks>
            This is used to support tracing within this Toolkit. It allows for exception throwing to be avoided
              if the <see cref="T:System.Diagnostics.TraceSource" /> is not able to be loaded.
            </remarks>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.RecordTrace.Flush">
      <summary>
            Flushes this instance.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.RecordTrace.Write(Neovolve.Toolkit.Instrumentation.RecordType,System.Exception)">
      <summary>
            Writes the specified exception and type.
            </summary>
      <param name="type">
            The type of message.
            </param>
      <param name="exception">
            The exception.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.RecordTrace.Write(Neovolve.Toolkit.Instrumentation.RecordType,System.String,System.Object[])">
      <summary>
            Writes the specified message and type.
            </summary>
      <param name="type">
            The type of message.
            </param>
      <param name="message">
            The message content.
            </param>
      <param name="arguments">
            The arguments related to the message.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.RecordTrace.GetSourceFromContext(Neovolve.Toolkit.Instrumentation.RecordTraceInitializationContext)">
      <summary>
            Gets the source from context.
            </summary>
      <param name="context">
            The context.
            </param>
      <returns>
            A <see cref="T:System.Diagnostics.TraceSource" /> instance.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.RecordTrace.EnsureInitialized">
      <summary>
            Ensures the initialized.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.RecordTrace.Initialize(Neovolve.Toolkit.Instrumentation.RecordTraceInitializationContext)">
      <overloads>
        <summary>
            Initializes this instance.
              </summary>
      </overloads>
      <summary>
            Initializes this instance with the specified context.
            </summary>
      <param name="context">
            The trace context.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.RecordTrace.ShouldWriteRecord(System.Diagnostics.TraceEventType)">
      <summary>
            Shoulds the write record.
            </summary>
      <param name="eventType">
            Type of the event.
            </param>
      <returns>
        <c>true</c> if a record should be written, otherwise <c>false</c>.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.RecordTrace.Write(System.Diagnostics.TraceEventType,System.String,System.Object[])">
      <summary>
            Writes the specified event type.
            </summary>
      <param name="eventType">
            Type of the event.
            </param>
      <param name="message">
            The message.
            </param>
      <param name="arguments">
            The arguments.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.RecordTrace.WriteInternal(System.Diagnostics.TraceEventType,System.Func{System.String})">
      <summary>
            Writes the internal.
            </summary>
      <param name="eventType">
            Type of the event.
            </param>
      <param name="getMessage">
            The get message function.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.RecordTrace.ConvertToTraceEventType(Neovolve.Toolkit.Instrumentation.RecordType)">
      <summary>
            Converts the type of to trace event.
            </summary>
      <param name="source">
            The source.
            </param>
      <returns>
            A <see cref="T:System.Diagnostics.TraceEventType" /> instance.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.RecordTrace.CreateMessageWithArguments(System.String,System.Object[])">
      <summary>
            Creates the message with arguments.
            </summary>
      <param name="message">
            The message.
            </param>
      <param name="arguments">
            The arguments.
            </param>
      <returns>
            A <see cref="T:System.String" /> instance.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.RecordTrace.ResolveTraceSource(System.String,Neovolve.Toolkit.Instrumentation.ITraceSourceResolver,System.Boolean)">
      <summary>
            Resolves the trace source.
            </summary>
      <param name="traceSourceName">
            Name of the trace source.
            </param>
      <param name="resolver">
            The trace source resolver.
            </param>
      <param name="throwOnSourceLoadFailure">
            If set to <c>true</c> and exception will be thrown if the source cannot be loaded.
            </param>
      <returns>
            A <see cref="T:System.Diagnostics.TraceSource" /> instance, or <c>null</c>.
            </returns>
      <exception cref="T:Neovolve.Toolkit.Instrumentation.TraceSourceLoadException">
            No trace source was resolved and the <paramref name="throwOnSourceLoadFailure" /> value is <c>true</c>.
            </exception>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.RecordTrace.Enabled">
      <summary>
            Gets or sets a value indicating whether tracing within the toolkit is enabled.
            </summary>
      <value>
        <c>true</c> if enabled; otherwise, <c>false</c>.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.RecordTrace.ThrowOnSourceFailure">
      <summary>
            Gets or sets a value indicating whether a 
              <see cref="T:Neovolve.Toolkit.Instrumentation.TraceSourceLoadException" /> is thrown when a
              <see cref="T:System.Diagnostics.TraceSource" /> cannot be loaded.
            </summary>
      <value>
        <c>true</c> if an exception should be thrown; otherwise, <c>false</c>.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.RecordTrace.IsInitialized">
      <summary>
            Gets or sets a value indicating whether this instance is initialized.
            </summary>
      <value>
        <c>true</c> if this instance is initialized; otherwise, <c>false</c>.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.RecordTrace.Source">
      <summary>
            Gets the trace source.
            </summary>
      <value>
            The trace source.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.RecordTrace.InitializationContext">
      <summary>
            Gets or sets the initialization context.
            </summary>
      <value>
            The initialization context.
            </value>
    </member>
    <member name="F:Neovolve.Toolkit.Instrumentation.ActivityTrace._context">
      <summary>
            Stores the Context value.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ActivityTrace.#ctor">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.ActivityTrace" /> class.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ActivityTrace.#ctor(System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.ActivityTrace" /> class.
            </summary>
      <param name="traceSourceName">
            Name of the trace source.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ActivityTrace.#ctor(System.String,Neovolve.Toolkit.Instrumentation.ITraceSourceResolver)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.ActivityTrace" /> class.
            </summary>
      <param name="traceSourceName">
            Name of the trace source.
            </param>
      <param name="resolver">
            The <see cref="T:System.Diagnostics.TraceSource" /> resolver.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ActivityTrace.#ctor(System.Diagnostics.TraceSource)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.ActivityTrace" /> class.
            </summary>
      <param name="source">
            The source.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ActivityTrace.#ctor(System.String,Neovolve.Toolkit.Instrumentation.ITraceSourceResolver,System.Boolean)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.ActivityTrace" /> class.
            </summary>
      <param name="traceSourceName">
            Name of the trace source.
            </param>
      <param name="resolver">
            The resolver.
            </param>
      <param name="throwOnSourceLoadFailure">
            If set to <c>true</c> and exception will be thrown if the source cannot be loaded.
            </param>
      <remarks>
            This is used to support tracing within this Toolkit. It allows for exception throwing to be avoided
              if the <see cref="T:System.Diagnostics.TraceSource" /> is not able to be loaded.
            </remarks>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ActivityTrace.#ctor(Neovolve.Toolkit.Instrumentation.ActivityTraceContext)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.ActivityTrace" /> class.
            </summary>
      <param name="context">
            The context.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ActivityTrace.Equals(System.Object)">
      <summary>
            Determines whether the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" />.
            </summary>
      <param name="obj">
            The <see cref="T:System.Object" /> to compare with the current <see cref="T:System.Object" />.
            </param>
      <returns>
            True if the specified <see cref="T:System.Object" /> is equal to the current <see cref="T:System.Object" />; otherwise, false.
            </returns>
      <exception cref="T:System.NullReferenceException">
            The <paramref name="obj" /> parameter is null.
            </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ActivityTrace.GetHashCode">
      <summary>
            Serves as a hash function for a particular type.
            </summary>
      <returns>
            A hash code for the current <see cref="T:System.Object" />.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ActivityTrace.ResumeActivity(System.String,System.Object[])">
      <summary>
            Resumes the activity with the specified message.
            </summary>
      <param name="message">
            The message.
            </param>
      <param name="arguments">
            The arguments.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ActivityTrace.StartActivity(System.String,System.Object[])">
      <summary>
            Starts the activity with the specified message.
            </summary>
      <param name="message">
            The message.
            </param>
      <param name="arguments">
            The arguments.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ActivityTrace.StopActivity(System.String,System.Object[])">
      <summary>
            Stops the activity with the specified message.
            </summary>
      <param name="message">
            The message.
            </param>
      <param name="arguments">
            The arguments.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ActivityTrace.SuspendActivity(System.String,System.Object[])">
      <summary>
            Suspends the activity with the specified message.
            </summary>
      <param name="message">
            The message.
            </param>
      <param name="arguments">
            The arguments.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ActivityTrace.Initialize(Neovolve.Toolkit.Instrumentation.RecordTraceInitializationContext)">
      <summary>
            Initializes this instance with the specified context.
            </summary>
      <param name="context">
            The trace context.
            </param>
      <overloads>
        <summary>
            Initializes this instance.
              </summary>
      </overloads>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ActivityTrace.WriteInternal(System.Diagnostics.TraceEventType,System.Func{System.String})">
      <summary>
            Writes the internal.
            </summary>
      <param name="eventType">
            Type of the event.
            </param>
      <param name="getMessage">
            The get message function.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ActivityTrace.StartActivity">
      <summary>
            Starts the activity.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ActivityTrace.StopActivity">
      <summary>
            Stops the activity.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ActivityTrace.UpdateState(System.Diagnostics.TraceEventType)">
      <summary>
            Updates the state.
            </summary>
      <param name="eventType">
            Type of the event.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.ActivityTrace.ValidateEventType(System.Diagnostics.TraceEventType)">
      <summary>
            Validates the type of the event.
            </summary>
      <param name="eventType">
            Type of the event.
            </param>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.ActivityTrace.Current">
      <summary>
            Gets the current <see cref="T:Neovolve.Toolkit.Instrumentation.ActivityTrace" />.
            </summary>
      <value>
            The current <see cref="T:Neovolve.Toolkit.Instrumentation.ActivityTrace" />.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.ActivityTrace.ActivityId">
      <summary>
            Gets the activity id.
            </summary>
      <value>
            The activity id.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.ActivityTrace.State">
      <summary>
            Gets the state of the activity.
            </summary>
      <value>
            The state of the activity.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.ActivityTrace.Source">
      <summary>
            Gets the trace source.
            </summary>
      <value>
            The trace source.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.ActivityTrace.Context">
      <summary>
            Gets or sets the context.
            </summary>
      <value>
            The context.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Storage.ConfigurationStoreFactory">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Storage.ConfigurationStoreFactory" />
              class is used to create <see cref="T:Neovolve.Toolkit.Storage.IConfigurationStore" /> instances.
            </summary>
      <remarks>
            The application configuration is used to determine the type of 
              <see cref="T:Neovolve.Toolkit.Storage.IConfigurationStore" /> to create. The configuration key used is <c>StoreType</c> which is defined
              in <see cref="F:Neovolve.Toolkit.Storage.ConfigurationStoreFactory.ConfigurationStoreTypeConfigurationKey" />.
              If the application configuration does not contain a value, a <see cref="T:Neovolve.Toolkit.Storage.ConfigurationManagerStore" /> instance will be returned.
            </remarks>
    </member>
    <member name="F:Neovolve.Toolkit.Storage.ConfigurationStoreFactory.ConfigurationStoreTypeConfigurationKey">
      <summary>
            Defines the configuration key used to obtain the configuration store type
              from application configuration.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Storage.ConfigurationStoreFactory._syncLock">
      <summary>
            Stores the object used for locking the class when resolving the store type.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Storage.ConfigurationStoreFactory._storeType">
      <summary>
            Stores the configuration store type.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ConfigurationStoreFactory.Create">
      <summary>
            Creates a <see cref="T:Neovolve.Toolkit.Storage.IConfigurationStore" /> instance.
            </summary>
      <returns>
            A <see cref="T:Neovolve.Toolkit.Storage.IConfigurationStore" /> instance.
            </returns>
      <remarks>
            The application configuration is used to determine the type of 
              <see cref="T:Neovolve.Toolkit.Storage.IConfigurationStore" /> to create. The configuration key used is <c>StoreType</c> which is defined
              in <see cref="F:Neovolve.Toolkit.Storage.ConfigurationStoreFactory.ConfigurationStoreTypeConfigurationKey" />.
              If the application configuration does not contain a value, a <see cref="T:Neovolve.Toolkit.Storage.ConfigurationManagerStore" /> instance will be returned.
            </remarks>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ConfigurationStoreFactory.DetermineStoreType">
      <summary>
            Determines the type of the configuration store.
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Storage.ConfigurationStoreFactory.StoreType">
      <summary>
            Gets or sets the type of the configuration store.
            </summary>
      <value>
            The type of the configuration store.
            </value>
      <remarks>
            The application configuration is used to determine the type of 
              <see cref="T:Neovolve.Toolkit.Storage.IConfigurationStore" /> created by this class. The configuration key used is <c>StoreType</c> which is defined
              in <see cref="F:Neovolve.Toolkit.Storage.ConfigurationStoreFactory.ConfigurationStoreTypeConfigurationKey" />.
              If the application configuration does not contain a value, <see cref="T:Neovolve.Toolkit.Storage.ConfigurationManagerStore" /> will be the type created.
            </remarks>
    </member>
    <member name="T:Neovolve.Toolkit.Storage.ConfigurationStoreContracts">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Storage.ConfigurationStoreContracts" />
            class is used to define the code contracts for the <see cref="T:Neovolve.Toolkit.Storage.IConfigurationStore" /> interface.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ConfigurationStoreContracts.GetApplicationSetting``1(System.String,``0,System.Boolean)">
      <summary>
              Gets the application setting for the provided key and default value.
            </summary>
      <typeparam name="T">The type of setting value.</typeparam>
      <param name="key">The configuration key.</param>
      <param name="defaultValue">The default value.</param>
      <param name="isRequired">if set to <c>true</c> then a configuration value must be defined; otherwise <c>false</c>.</param>
      <returns>
              A <typeparamref name="T" /> value, or <paramref name="defaultValue" /> if no configuration is found.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ConfigurationStoreContracts.GetConnectionSetting(System.String)">
      <summary>
              Gets the connection setting for the provided key.
            </summary>
      <param name="key">
              The configuration key.
            </param>
      <returns>
              A <see cref="T:System.Configuration.ConnectionStringSettings" /> instance or <c>null</c> if no configuration is found.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ConfigurationStoreContracts.GetSection``1(System.String)">
      <summary>
              Gets the configuration section for the provided section name.
            </summary>
      <typeparam name="T">
              The type of configuration section.
            </typeparam>
      <param name="sectionName">
              Name of the section.
            </param>
      <returns>
              A <typeparamref name="T" /> instance or <c>null</c> if the section is not defined in configuration.
            </returns>
    </member>
    <member name="T:Neovolve.Toolkit.Extensions">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Extensions" />
              class is used to expose common extension methods.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Extensions.FormatMaskIndexExpressionValue">
      <summary>
            Defines the regular expression value for format mask values.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Extensions._formatMaskIndexExpression">
      <summary>
            Stores the regular expression used to identify format mask values.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Extensions.ConvertToSecureString(System.String)">
      <summary>
            Converts a <see cref="T:System.String" /> to a <see cref="T:System.Security.SecureString" />.
            </summary>
      <param name="insecureValue">
            The insecure value.
            </param>
      <returns>
            A <see cref="T:System.Security.SecureString" /> value.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Extensions.ConvertToString(System.Security.SecureString)">
      <summary>
            Converts a <see cref="T:System.Security.SecureString" /> to <see cref="T:System.String" />.
            </summary>
      <param name="secureValue">
            The secure value.
            </param>
      <returns>
            A <see cref="T:System.String" /> value.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Extensions.GetFormatMaskCount(System.String)">
      <summary>
            Gets the count of format mask arguments supported by the specified string.
            </summary>
      <param name="value">
            The format value.
            </param>
      <returns>
            A <see cref="T:System.Int32" /> instance.
            </returns>
      <remarks>
        <para>
            This method determines the maximum number of format arguments supported in a format string.
            The calculation of format mask index values supports the 
            <a href="http://msdn.microsoft.com/en-us/library/txafckwd.aspx" target="_blank">composite format string syntax</a> 
            described in the MSDN documentation.
            </para>
        <para>
            The logic in this method will skip any format masks that are missing in order to determine the maximum count of arguments supported by the string.
            A value of <c>"Pre{0}Post"</c> will return 1 whereas <c>"Pre{0} {5}Post"</c> will return 6.
            </para>
      </remarks>
    </member>
    <member name="M:Neovolve.Toolkit.Extensions.FormatNullMasks(System.String,System.IFormatProvider,System.Object[])">
      <summary>
            Formats the string using the value of <c>{null}</c> for any arguments that are either <c>null</c> or not provided.
            </summary>
      <param name="format">The format string.</param>
      <param name="formatProvider">The format provider.</param>
      <param name="args">The arguments used to format the string.</param>
      <returns>A <see cref="T:System.String" /> instance.</returns>
      <remarks>
            This method does not require that the number of arguments is the same or greater than the maximum format mask index.
            Any format argument not provided, or provided as a <c>null</c> value will be injected into the result string as
            the value <c>{null}</c>.
            </remarks>
    </member>
    <member name="M:Neovolve.Toolkit.Extensions.FormatNullMasksInternal(System.String,System.IFormatProvider,System.Int32,System.Object[])">
      <summary>
            Formats the null masks.
            </summary>
      <param name="format">The format.</param>
      <param name="formatProvider">The format provider.</param>
      <param name="maskCount">The mask count.</param>
      <param name="args">The arguments used to format the string.</param>
      <returns>A <see cref="T:System.String" /> instance.</returns>
    </member>
    <member name="T:Neovolve.Toolkit.Communication.Security.PasswordSecurityTokenAuthenticator">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordSecurityTokenAuthenticator" />
              class is used to determine the <see cref="T:System.IdentityModel.Policy.IAuthorizationPolicy" />
              implementations to use when authenticating a user.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.Security.PasswordSecurityTokenAuthenticator.#ctor(System.IdentityModel.Selectors.UserNamePasswordValidator)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Communication.Security.PasswordSecurityTokenAuthenticator" /> class.
            </summary>
      <param name="validator">
            A <see cref="T:System.IdentityModel.Selectors.UserNamePasswordValidator" />  that authenticates the user name and password using a custom authentication scheme.
            </param>
      <exception cref="T:System.ArgumentNullException">
        <paramref name="validator" /> is null.
            </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.Security.PasswordSecurityTokenAuthenticator.ValidateUserNamePasswordCore(System.String,System.String)">
      <summary>
            Authenticates the specified user name and password and returns the set of authorization policies for <see cref="T:System.IdentityModel.Tokens.UserNameSecurityToken" /> security tokens.
            </summary>
      <param name="userName">
            The user name associated with the security token.
            </param>
      <param name="password">
            The password associated with the security token.
            </param>
      <returns>
            A <see cref="T:System.Collections.ObjectModel.ReadOnlyCollection`1" /> of type <see cref="T:System.IdentityModel.Policy.IAuthorizationPolicy" /> that contains the set of authorization policies in effect for this application.
            </returns>
      <exception cref="T:System.ArgumentNullException">
        <paramref name="userName" /> is null.
            </exception>
      <exception cref="T:System.IdentityModel.Tokens.SecurityTokenValidationException">
        <paramref name="userName" /> and <paramref name="password" /> combination are not valid.
            </exception>
    </member>
    <member name="T:Neovolve.Toolkit.Reflection.MethodResolver">
      <summary>
              The <see cref="T:Neovolve.Toolkit.Reflection.MethodResolver" />
              class resolves <see cref="T:System.Reflection.MethodInfo" />
              instances of types and caches results for faster access.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Reflection.MethodResolver._cacheStore">
      <summary>
              Stores the cache used to store <see cref="T:System.RuntimeMethodHandle" /> values.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Reflection.MethodResolver.Resolve(System.Type,System.String,System.Type[])">
      <summary>
              Resolves the specified declaring type.
            </summary>
      <param name="declaringType">
              Type of the declaring.
            </param>
      <param name="methodName">
              Name of the method.
            </param>
      <param name="parameterTypes">
              The parameter types.
            </param>
      <returns>
              A <see cref="T:System.Reflection.MethodInfo" /> instance.
            </returns>
      <exception cref="T:System.ArgumentNullException">
              The <paramref name="declaringType" /> is <c>null</c>.
            </exception>
      <exception cref="T:System.ArgumentNullException">
              The <paramref name="methodName" /> is <c>null</c> or equals <see cref="F:System.String.Empty" />.
            </exception>
      <requires description="The declaringType value is null." exception="T:System.ArgumentNullException">declaringType != null</requires>
      <exception cref="T:System.ArgumentNullException">declaringType == null</exception>
      <requires description="The methodName value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(methodName) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(methodName) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Reflection.MethodResolver.GetResolvedMethod(Neovolve.Toolkit.Reflection.MethodCacheKey)">
      <summary>
              Gets the resolved method handle.
            </summary>
      <param name="cacheKey">The cache key.</param>
      <returns>
              A <see cref="T:System.RuntimeMethodHandle" /> instance.
            </returns>
      <exception cref="T:System.MissingMemberException">The method was not found.</exception>
    </member>
    <member name="T:Neovolve.Toolkit.Storage.ConfigurationStoreExtensions">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Storage.ConfigurationStoreExtensions" />
            class is used to define extension methods for the <see cref="T:Neovolve.Toolkit.Storage.IConfigurationStore" /> interface.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ConfigurationStoreExtensions.GetApplicationSetting``1(Neovolve.Toolkit.Storage.IConfigurationStore,System.String)">
      <summary>
            Gets the application setting.
            </summary>
      <typeparam name="T">
            The type of setting value.
            </typeparam>
      <param name="store">The configuration store.</param>
      <param name="key">The configuration key.</param>
      <returns>A <typeparamref name="T" /> instance.</returns>
      <requires exception="T:System.ArgumentNullException">store != null</requires>
      <exception cref="T:System.ArgumentNullException">store == null</exception>
      <requires description="The key value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(key) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(key) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ConfigurationStoreExtensions.GetApplicationSetting``1(Neovolve.Toolkit.Storage.IConfigurationStore,System.String,``0)">
      <summary>
            Gets the application setting.
            </summary>
      <typeparam name="T">
            The type of setting value.
            </typeparam>
      <param name="store">The configuration store.</param>
      <param name="key">The configuration key.</param>
      <param name="defaultValue">The default value.</param>
      <returns>A <typeparamref name="T" /> instance.</returns>
      <requires exception="T:System.ArgumentNullException">store != null</requires>
      <exception cref="T:System.ArgumentNullException">store == null</exception>
      <requires description="The key value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(key) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(key) == false)</exception>
    </member>
    <member name="T:Neovolve.Toolkit.Storage.AbsoluteExpirationPolicy">
      <summary>
              The <see cref="T:Neovolve.Toolkit.Storage.AbsoluteExpirationPolicy" />
              class is used to define an absolute time when a cache item is to expire.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.AbsoluteExpirationPolicy.#ctor(System.TimeSpan)">
      <summary>
              Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Storage.AbsoluteExpirationPolicy" /> class.
            </summary>
      <param name="absoluteExpiration">The absolute expiration.</param>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.AbsoluteExpirationPolicy.#ctor(System.DateTime)">
      <summary>
              Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Storage.AbsoluteExpirationPolicy" /> class.
            </summary>
      <param name="absoluteExpiration">
              The absolute expiration.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.AbsoluteExpirationPolicy.NotifyItemAdded(System.Object)">
      <summary>
              Notifies that the cache item has been added to the cache.
            </summary>
      <param name="cacheItem">
              The cache item.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.AbsoluteExpirationPolicy.NotifyItemRead(System.Object)">
      <summary>
              Notifies that the cache item has been read from the cache.
            </summary>
      <param name="cachedItem">
              The cached item.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.AbsoluteExpirationPolicy.NotifyItemRemoved(System.Object)">
      <summary>
              Notifies the cache item has been removed from the cache.
            </summary>
      <param name="cachedItem">
              The cached item.
            </param>
    </member>
    <member name="P:Neovolve.Toolkit.Storage.AbsoluteExpirationPolicy.Expiration">
      <summary>
              Gets the expiration.
            </summary>
      <value>
              The expiration.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Storage.AbsoluteExpirationPolicy.HasExpired">
      <summary>
              Gets a value indicating whether the cache item has expired.
            </summary>
      <value>
        <c>true</c>if the cache item has expired; otherwise, <c>false</c>.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Instrumentation.RecordType">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Instrumentation.RecordType" />
              enum is used to define the type of record created.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Instrumentation.RecordType.Verbose">
      <summary>
            The record relates to a detailed event.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Instrumentation.RecordType.Information">
      <summary>
            The record relates to an information event.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Instrumentation.RecordType.Warning">
      <summary>
            The record relates to a warning.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Instrumentation.RecordType.Error">
      <summary>
            The record relates an an error.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Instrumentation.RecordType.Critical">
      <summary>
            The record relates to a critical event.
            </summary>
    </member>
    <member name="T:Neovolve.Toolkit.Communication.DefaultProxyHandler`1">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Communication.DefaultProxyHandler`1" />
              class is used to provide a default handler for invoking methods on a type.
            </summary>
      <typeparam name="T">
            The type of proxy to invoke.
            </typeparam>
      <remarks>
        <para>
            The <see cref="T:Neovolve.Toolkit.Communication.DefaultProxyHandler`1" /> works by invoking methods on the proxy type that is either provided
            or created by the default constructor. 
            </para>
        <note>
            The proxy type must be a class that inherits from <see cref="T:System.MarshalByRefObject" />. 
            </note>
      </remarks>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.DefaultProxyHandler`1.#ctor">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Communication.DefaultProxyHandler`1" /> class.
            </summary>
      <remarks>
            The default constructor creates an instance of the proxy type and invokes the methods on that instance.
            </remarks>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.DefaultProxyHandler`1.#ctor(`0)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Communication.DefaultProxyHandler`1" /> class.
            </summary>
      <param name="target">
            The target.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.DefaultProxyHandler`1.ExecuteMethod(System.Reflection.MethodBase,System.Object[])">
      <summary>
            Executes the method.
            </summary>
      <param name="method">
            The method.
            </param>
      <param name="parameters">
            The parameters.
            </param>
      <returns>
            A <see cref="T:System.Object" /> instance.
            </returns>
    </member>
    <member name="P:Neovolve.Toolkit.Communication.DefaultProxyHandler`1.Target">
      <summary>
            Gets or sets the target.
            </summary>
      <value>
            The target.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Communication.ChannelProxyHandler`1">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Communication.ChannelProxyHandler`1" />
              class is used to provide a proxy implementation for a WCF service channel.
            </summary>
      <typeparam name="T">
            The type of WCF service to invoke.
            </typeparam>
      <remarks>
        <para>
            The <see cref="T:Neovolve.Toolkit.Communication.ChannelProxyHandler`1" /> ensures that the the WCF call will always operate on a valid WCF channel.
                The proxy handler will recreate the WCF channel if a prior call has faulted the channel.
              </para>
        <note>
            The proxy handler will throw all WCF exceptions to the caller even though it manages faulted channels internally.
              </note>
        <para>
            The default constructor will search the application configuration for an endpoint for the specified service contract. 
                A <see cref="T:System.Configuration.ConfigurationErrorsException" /> will be thrown if no endpoint configuration is found or if multiple 
                endpoint configurations are found. An unnamed endpoint configuration is taken as the priority over a named endpoint 
            configuration where both a named and unnamed endpoint configuraiton is found.
              </para>
        <para>
            The WCF channel is closed when the proxy is disposed.
              </para>
        <para>
            Any initialization required for the WCF channel can be achieved by providing a <see cref="T:System.Action`1" /> of type
                <see cref="T:System.ServiceModel.ChannelFactory`1" /> to the <see cref="M:Neovolve.Toolkit.Communication.ChannelProxyHandler`1.Initialize``1(System.Action{``0})" /> method. This action will be
                invoked before each time the WCF channel is created. Any existing channel will be destroyed when an action is defined
                to ensure that the next channel invocation uses the provided initialization functionality.
              </para>
      </remarks>
    </member>
    <member name="F:Neovolve.Toolkit.Communication.ChannelProxyHandler`1._createFactory">
      <summary>
              Stores the function used to create the factory.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Communication.ChannelProxyHandler`1._typeMapping">
      <summary>
              Stores the type mapping cache.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ChannelProxyHandler`1.#ctor">
      <summary>
              Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Communication.ChannelProxyHandler`1" /> class.
            </summary>
      <remarks>
              The default constructor will search the application configuration for an endpoint for the specified service contract. 
              A <see cref="T:System.Configuration.ConfigurationErrorsException" /> will be thrown if no endpoint configuration is found or if multiple 
              endpoint configurations are found.
            </remarks>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ChannelProxyHandler`1.#ctor(System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Communication.ChannelProxyHandler`1" /> class.
            </summary>
      <param name="configurationName">
            Name of the configuration.
            </param>
      <requires description="The configurationName value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(configurationName) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(configurationName) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ChannelProxyHandler`1.#ctor(Neovolve.Toolkit.Storage.IConfigurationStore)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Communication.ChannelProxyHandler`1" /> class. 
              Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Communication.ChannelProxyHandler`1" /> class.
            </summary>
      <param name="store">
            The store.
            </param>
      <requires description="The store value is null." exception="T:System.ArgumentNullException">store != null</requires>
      <exception cref="T:System.ArgumentNullException">store == null</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ChannelProxyHandler`1.Dispose">
      <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ChannelProxyHandler`1.Initialize``1(System.Action{``0})">
      <summary>
            Initializes the proxy using the specified action.
            </summary>
      <typeparam name="TInitialize">
            The type of object to be initialized for the proxy.
            </typeparam>
      <param name="action">
            The action to invoke.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ChannelProxyHandler`1.Dispose(System.Boolean)">
      <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
      <param name="disposing">
        <c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ChannelProxyHandler`1.ExecuteMethod(System.Reflection.MethodBase,System.Object[])">
      <summary>
            Executes the method.
            </summary>
      <param name="method">
            The method.
            </param>
      <param name="parameters">
            The parameters.
            </param>
      <returns>
            A <see cref="T:System.Object" /> instance.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ChannelProxyHandler`1.SearchConfigurationName(Neovolve.Toolkit.Storage.IConfigurationStore)">
      <summary>
            Searches the name of the configuration.
            </summary>
      <param name="store">
            The store.
            </param>
      <returns>
            A <see cref="T:System.String" /> instance.
            </returns>
      <remarks>
            A value of <see cref="F:System.String.Empty">String.Empty</see> is a valid value for the service configuration name.
            </remarks>
      <requires description="The store value is null." exception="T:System.ArgumentNullException">store != null</requires>
      <exception cref="T:System.ArgumentNullException">store == null</exception>
      <ensures>Contract.Result&lt;String&gt;() != null</ensures>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ChannelProxyHandler`1.ChannelIsFaulted">
      <summary>
            Channels the is fauled.
            </summary>
      <returns>
            A <see cref="T:System.Boolean" /> instance.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ChannelProxyHandler`1.CreateChannel">
      <summary>
            The create channel.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ChannelProxyHandler`1.CreateFactory">
      <summary>
            Creates the factory.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ChannelProxyHandler`1.DestroyChannel(System.Boolean)">
      <summary>
            Destroys the channel.
            </summary>
      <param name="forceAbort">
            If set to <c>true</c> the channel will be forced to abort.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ChannelProxyHandler`1.DestroyFactory">
      <summary>
            Destroys the factory.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ChannelProxyHandler`1.GenerateCacheKey">
      <summary>
            Generates the cache key.
            </summary>
      <returns>
            A <see cref="T:System.String" /> instance.
            </returns>
      <ensures>String.IsNullOrWhiteSpace(Contract.Result&lt;String&gt;()) == false</ensures>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ChannelProxyHandler`1.InvokeServiceMethod(System.Reflection.MethodBase,System.Object[])">
      <summary>
            Invokes the service method.
            </summary>
      <param name="method">
            The method.
            </param>
      <param name="parameters">
            The parameters.
            </param>
      <returns>
            A <see cref="T:System.Object" /> instance.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ChannelProxyHandler`1.ResolveConfigurationName(Neovolve.Toolkit.Storage.IConfigurationStore)">
      <summary>
            Resolves the name of the configuration.
            </summary>
      <param name="store" />
      <returns>
            A <see cref="T:System.String" /> instance.
            </returns>
      <requires description="The store value is null." exception="T:System.ArgumentNullException">store != null</requires>
      <exception cref="T:System.ArgumentNullException">store == null</exception>
    </member>
    <member name="P:Neovolve.Toolkit.Communication.ChannelProxyHandler`1.TypeMapping">
      <summary>
              Gets the type mapping.
            </summary>
      <value>
              The type mapping.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Communication.ChannelProxyHandler`1.Disposed">
      <summary>
              Gets or sets a value indicating whether this <see cref="T:Neovolve.Toolkit.Communication.ProxyManager`1" /> is disposed.
            </summary>
      <value>
        <c>true</c> if disposed; otherwise, <c>false</c>.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Communication.ChannelProxyHandler`1.Channel">
      <summary>
              Gets or sets the channel.
            </summary>
      <value>
              The channel.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Communication.ChannelProxyHandler`1.Factory">
      <summary>
              Gets or sets the factory.
            </summary>
      <value>
              The factory.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.BusinessFailure`1">
      <summary>
            The <see cref="T:Neovolve.Toolkit.BusinessFailure`1" />
              class is used to define a business failure.
            </summary>
      <typeparam name="T">
            The type of code that identifies the failure. This is usually an enum value.
            </typeparam>
    </member>
    <member name="M:Neovolve.Toolkit.BusinessFailure`1.#ctor(`0,System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.BusinessFailure`1" /> class.
            </summary>
      <param name="code">
            The code of the failure.
            </param>
      <param name="description">
            The description of the failure.
            </param>
      <requires exception="T:System.ArgumentNullException">String.IsNullOrEmpty(description) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(String.IsNullOrEmpty(description) == false)</exception>
    </member>
    <member name="P:Neovolve.Toolkit.BusinessFailure`1.Code">
      <summary>
            Gets the code that identifies the failure.
            </summary>
      <value>
            The code that identifies the failure.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.BusinessFailure`1.Description">
      <summary>
            Gets the description of the failure.
            </summary>
      <value>
            The description of the failure.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Communication.Security.DefaultPasswordValidator">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Communication.Security.DefaultPasswordValidator" />
              class provides a user name password validation implementation that ensures that a user name and password value have been supplied.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.Security.DefaultPasswordValidator.Validate(System.String,System.String)">
      <summary>
            Validates the specified user name and password.
            </summary>
      <param name="userName">
            The user name to validate.
            </param>
      <param name="password">
            The password to validate.
            </param>
    </member>
    <member name="T:Neovolve.Toolkit.Communication.NamespaceDoc">
      <summary>
            The Neovolve.Toolkit.Communication namespace contains classes that provide communication related functionality.
              The communication support includes local, distributed and debugging implementations.
            </summary>
    </member>
    <member name="T:Neovolve.Toolkit.SystemFailureException">
      <summary>
            The <see cref="T:Neovolve.Toolkit.SystemFailureException" />
              class is an exception that is used to identify system level failures.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.SystemFailureException.#ctor">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.SystemFailureException" /> class.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.SystemFailureException.#ctor(System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.SystemFailureException" /> class.
            </summary>
      <param name="message">
            The message.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.SystemFailureException.#ctor(System.String,System.Exception)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.SystemFailureException" /> class.
            </summary>
      <param name="message">
            The message.
            </param>
      <param name="inner">
            The inner exception.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.SystemFailureException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.SystemFailureException" /> class.
            </summary>
      <param name="info">
            The <see cref="T:System.Runtime.Serialization.SerializationInfo" /> that holds the serialized object data about the exception being thrown.
            </param>
      <param name="context">
            The <see cref="T:System.Runtime.Serialization.StreamingContext" /> that contains contextual information about the source or destination.
            </param>
      <exception cref="T:System.ArgumentNullException">
            The <paramref name="info" /> parameter is null.
            </exception>
      <exception cref="T:System.Runtime.Serialization.SerializationException">
            The class name is null or <see cref="P:System.Exception.HResult" /> is zero (0).
            </exception>
    </member>
    <member name="T:Neovolve.Toolkit.Storage.ExpirationCacheStoreBaseContracts">
      <summary>
              The <see cref="T:Neovolve.Toolkit.Storage.ExpirationCacheStoreBaseContracts" />
              class is used to define the contracts for <see cref="T:Neovolve.Toolkit.Storage.ExpirationCacheStoreBase" />.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ExpirationCacheStoreBaseContracts.ReadKeys">
      <summary>
              Reads the cache keys.
            </summary>
      <returns>
              A <see cref="T:System.String" /> array instance.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.ExpirationCacheStoreBaseContracts.RemoveItem(System.String)">
      <summary>
              Removes the item from the cache.
            </summary>
      <param name="key">The cache key.</param>
      <returns>
              A <see cref="T:System.Object" /> instance.
            </returns>
    </member>
    <member name="T:Neovolve.Toolkit.Reflection.NamespaceDoc">
      <summary>
            The Neovolve.Toolkit.Reflection namespace contains classes that provide reflection related functionality such as resolving types and methods.
            </summary>
    </member>
    <member name="T:Neovolve.Toolkit.Communication.Security.NamespaceDoc">
      <summary>
            The Neovolve.Toolkit.Communication.Security namespace contains classes that provide enhanced support 
              for security scenarios for communication of distributed services.
            </summary>
    </member>
    <member name="T:Neovolve.Toolkit.Properties.Resources">
      <summary>
              A strongly-typed resource class, for looking up localized strings, etc.
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.ResourceManager">
      <summary>
              Returns the cached ResourceManager instance used by this class.
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.Culture">
      <summary>
              Overrides the current thread's CurrentUICulture property for all
              resource lookups using this strongly typed resource class.
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.BusinessFailureException_FailureMessageFormat">
      <summary>
              Looks up a localized string similar to {0} - {1}.
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.BusinessFailureException_MessageHeader">
      <summary>
               Looks up a localized string similar to The following business failures have been encountered:
            {0}.
             </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.BusinessFailureException_UnknownFailure">
      <summary>
              Looks up a localized string similar to Unknown failure.
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.ChannelProxyHandler_MultipleNamedEndpointConfigurationsFoundForContract">
      <summary>
              Looks up a localized string similar to The endpoint configuration for contract type '{0}' could not be automatically determined as configuration defines multiple named endpoints..
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.ChannelProxyHandler_MultipleUnnamedEndpointConfigurationsFoundForContract">
      <summary>
              Looks up a localized string similar to The endpoint configuration for contract type '{0}' could not be automatically determined as configuration defines multiple unnamed endpoints..
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.ChannelProxyHandler_NoEndpointConfigurationForServiceType">
      <summary>
              Looks up a localized string similar to No configuration could be found for service type '{0}'..
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.ConfigurationManagerStore_RequiredValueMissing">
      <summary>
              Looks up a localized string similar to No configuration value found for key '{0}' where a value is required..
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.CustomUserNamePasswordValidationNotEnabled">
      <summary>
              Looks up a localized string similar to Custom user name password validation is not enabled as was expected..
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.DuplicateErrorHandlerTypeProvided">
      <summary>
              Looks up a localized string similar to The error handler type '{0}' has already been provided..
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.InvalidCastExceptionMessage">
      <summary>
              Looks up a localized string similar to The type '{0}' cannot be cast as type '{1}'..
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.InvalidConfigurationSectionTypeExceptionMessage">
      <summary>
              Looks up a localized string similar to Invalid configuration section type for section name '{0}'. The type '{1}' was expected, but '{2}' was found..
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.InvalidTypeLoadFromConfigurationFailed">
      <summary>
              Looks up a localized string similar to The type '{0}' loaded from configuration with key '{1}' is the incorrect type. It is not assignable to '{2}'..
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.MemberTrace_AssemblyTitle">
      <summary>
              Looks up a localized string similar to Assembly: .
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.MemberTrace_DeclaringTypeTitle">
      <summary>
              Looks up a localized string similar to Type: .
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.MemberTrace_EnvironmentIdentityTitle">
      <summary>
              Looks up a localized string similar to Environment identity: .
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.MemberTrace_MachineNameTitle">
      <summary>
              Looks up a localized string similar to Machine: .
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.MemberTrace_MailModuleTitle">
      <summary>
              Looks up a localized string similar to Main module:.
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.MemberTrace_MethodNameTitle">
      <summary>
              Looks up a localized string similar to Method: .
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.MemberTrace_OperatingSystemTitle">
      <summary>
              Looks up a localized string similar to Operating System: .
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.MemberTrace_ThreadIdentityTitle">
      <summary>
              Looks up a localized string similar to Thread identity: .
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.MemberTrace_ThreadNameTitle">
      <summary>
              Looks up a localized string similar to Thread name: .
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.MemberTraceDisposedExceptionMessage">
      <summary>
              Looks up a localized string similar to Unable to write any trace messages because the MemberTrace instance is already disposed..
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.NoCustomUserNamePasswordValidatorConfigured">
      <summary>
              Looks up a localized string similar to No custom user name password validator has been configured..
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.NoPasswordProvided">
      <summary>
              Looks up a localized string similar to No password has been provided..
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.NoUserNameProvided">
      <summary>
              Looks up a localized string similar to No user name has been provided..
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.RecordTrace_AdditionalParameterOutput">
      <summary>
              Looks up a localized string similar to {0}. {1}.
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.RecordTrace_AdditionalParametersHeader">
      <summary>
              Looks up a localized string similar to Additional Parameters:.
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.SystemFailureException_UnknownFailure">
      <summary>
              Looks up a localized string similar to An unknown system failure has occurred..
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.TraceActivityNotRunningExceptionMessage">
      <summary>
              Looks up a localized string similar to The current ActivityTrace instance is not running and cannot write the event..
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.TraceActivityRunningExceptionMessage">
      <summary>
              Looks up a localized string similar to The current ActivityTrace instance is already running and cannot be started or resumed..
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.TraceActivityStackCorruptedExceptionMessage">
      <summary>
              Looks up a localized string similar to The ActivityId of the current ActivityTrace does not match the current activity in Trace.CorrelationManager..
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.TraceActivitySuspendedExceptionMessage">
      <summary>
              Looks up a localized string similar to The current ActivityTrace instance is suspended and must be resumed before writing any further events..
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.TraceSourceLoadExceptionMessage">
      <summary>
              Looks up a localized string similar to Failed to determine a TraceSource name to use or the TraceSource could not be loaded..
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.TypeLoadFromConfigurationKeyFailed">
      <summary>
              Looks up a localized string similar to Failed to load type '{0}' defined in configuration with key '{1}'. An instance of '{2}' could not be created..
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.TypeResolver_TypeNotResolvedFromConfiguration">
      <summary>
              Looks up a localized string similar to No matching configuration was found to load a type related to type '{0}'.
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Properties.Resources.TypeResolver_TypeNotResolvedFromConfigurationKey">
      <summary>
              Looks up a localized string similar to The type related to type '{0}' could not be found with configuration key '{1}'.
            </summary>
    </member>
    <member name="T:Neovolve.Toolkit.Instrumentation.CallingMethodResult">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Instrumentation.CallingMethodResult" />
              struct is used to describe the results of calculating the calling method and type
              by the <see cref="T:Neovolve.Toolkit.Instrumentation.CallingMethodResolver" /> class.
            </summary>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.CallingMethodResult.CallingMethod">
      <summary>
            Gets or sets the calling method.
            </summary>
      <value>
            The calling method.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.CallingMethodResult.CallingType">
      <summary>
            Gets the calling type.
            </summary>
      <value>
            The calling type.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.CallingMethodResult.TraceSourceName">
      <summary>
            Gets or sets the name of the trace source.
            </summary>
      <value>
            The name of the trace source.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Communication.ProxyManager`1">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Communication.ProxyManager`1" />
              class is used to manage invocations of proxy objects.
            </summary>
      <typeparam name="T">
            The type of class to proxy calls to.
            </typeparam>
    </member>
    <member name="F:Neovolve.Toolkit.Communication.ProxyManager`1._proxy">
      <summary>
            Stores the proxy instance.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ProxyManager`1.#ctor">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Communication.ProxyManager`1" /> class.
            </summary>
      <remarks>
            The <see cref="T:Neovolve.Toolkit.Communication.ProxyManager`1" /> will check if the <typeparamref name="T" /> type is decorated with the
            <see cref="T:System.ServiceModel.ServiceContractAttribute" />. A <see cref="T:Neovolve.Toolkit.Communication.ChannelProxyHandler`1" /> is used if the type is a service contract,
            otherwise a <see cref="T:Neovolve.Toolkit.Communication.DefaultProxyHandler`1" /> is used.
            </remarks>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ProxyManager`1.#ctor(Neovolve.Toolkit.Communication.ProxyHandler{`0})">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Communication.ProxyManager`1" /> class.
            </summary>
      <param name="proxyHandler">
            The proxy handler.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ProxyManager`1.Dispose">
      <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ProxyManager`1.Dispose(System.Boolean)">
      <summary>
            Releases unmanaged and - optionally - managed resources.
            </summary>
      <param name="disposing">
        <c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.
            </param>
    </member>
    <member name="P:Neovolve.Toolkit.Communication.ProxyManager`1.Proxy">
      <summary>
            Gets the proxy.
            </summary>
      <value>
            The proxy.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Communication.ProxyManager`1.ProxyHandler">
      <summary>
            Gets the proxy handler.
            </summary>
      <value>
            The proxy handler.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Communication.ProxyManager`1.Disposed">
      <summary>
            Gets or sets a value indicating whether this <see cref="T:Neovolve.Toolkit.Communication.ProxyManager`1" /> is disposed.
            </summary>
      <value>
        <c>true</c> if disposed; otherwise, <c>false</c>.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Communication.ErrorHandlerElement">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Communication.ErrorHandlerElement" />
              class is used to provide configuration support for defining an error handler via a service behavior.
            </summary>
      <example>
        <para>
            The following configuration defines an error handler for a service.
              </para>
        <code lang="xml" title="Example of web.config"><![CDATA[
            <?xml version="1.0" ?>
            <configuration>
                <system.serviceModel>
                    <behaviors>
                        <serviceBehaviors>
                            <behavior name="ErrorHandlerBehavior">
                                <errorHandler type="Neovolve.Toolkit.IntegrationTests.Communication.KnownErrorHandler, Neovolve.Toolkit.IntegrationTests"/>
                            </behavior>
                        </serviceBehaviors>
                    </behaviors>
                    <extensions>
                        <behaviorExtensions>
                            <add name="errorHandler"
                                 type="Neovolve.Toolkit.Communication.ErrorHandlerElement, Neovolve.Toolkit"/>
                        </behaviorExtensions>
                    </extensions>
                    <services>
                        <service behaviorConfiguration="ErrorHandlerBehavior"
                                 name="Neovolve.Toolkit.IntegrationTests.Communication.TestService">
                            <endpoint address=""
                                      binding="basicHttpBinding"
                                      bindingConfiguration=""
                                      contract="Neovolve.Toolkit.IntegrationTests.Communication.ITestService"/>
                        </service>
                    </services>
                </system.serviceModel>
            </configuration> 
            ]]></code>
      </example>
      <seealso cref="T:Neovolve.Toolkit.Communication.ErrorHandlerAttribute" />
    </member>
    <member name="F:Neovolve.Toolkit.Communication.ErrorHandlerElement.ErrorHandlerTypeAttributeName">
      <summary>
            Defines the attribute name for the error handler type.
            </summary>
    </member>
    <member name="F:Neovolve.Toolkit.Communication.ErrorHandlerElement._properties">
      <summary>
            Stores the set of properties for the element.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Communication.ErrorHandlerElement.CreateBehavior">
      <summary>
            Creates a behaviour extension based on the current configuration settings.
            </summary>
      <returns>
            The behaviour extension.
            </returns>
    </member>
    <member name="P:Neovolve.Toolkit.Communication.ErrorHandlerElement.BehaviorType">
      <summary>
            Gets the type of behaviour.
            </summary>
      <value>
            The type of behaviour.
            </value>
      <returns>
            A <see cref="T:System.Type" />.
            </returns>
    </member>
    <member name="P:Neovolve.Toolkit.Communication.ErrorHandlerElement.ErrorHandlerType">
      <summary>
            Gets or sets the type of the error handler.
            </summary>
      <value>
            The type of the error handler.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Communication.ErrorHandlerElement.Properties">
      <summary>
            Gets the collection of properties.
            </summary>
      <value>
            The properties.
            </value>
      <returns>
            The <see cref="T:System.Configuration.ConfigurationPropertyCollection" /> of properties for the element.
            </returns>
    </member>
    <member name="T:Neovolve.Toolkit.Threading.NamespaceDoc">
      <summary>
            The Neovolve.Toolkit.Threading namespace contains classes that provide functionality for threading activities, such as locking.
            </summary>
    </member>
    <member name="T:Neovolve.Toolkit.Instrumentation.MemberTrace">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Instrumentation.MemberTrace" />
              class is used to provide activity tracing functionality for methods that declare them.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.MemberTrace.#cctor">
      <summary>
            Initializes static members of the <see cref="T:Neovolve.Toolkit.Instrumentation.MemberTrace" /> class.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.MemberTrace.#ctor">
      <overloads>
        <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.MemberTrace" /> class.
              </summary>
      </overloads>
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.MemberTrace" /> class.
            </summary>
      <exception cref="T:Neovolve.Toolkit.Instrumentation.TraceSourceLoadException">
            No <see cref="T:System.Diagnostics.TraceSource" /> instance was resolved.
            </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.MemberTrace.#ctor(System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.MemberTrace" /> class.
            </summary>
      <param name="traceSourceName">
            Name of the trace source.
            </param>
      <exception cref="T:Neovolve.Toolkit.Instrumentation.TraceSourceLoadException">
            No <see cref="T:System.Diagnostics.TraceSource" /> instance was resolved.
            </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.MemberTrace.#ctor(System.String,System.Reflection.MethodBase)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.MemberTrace" /> class.
            </summary>
      <param name="traceSourceName">
            Name of the trace source.
            </param>
      <param name="methodToTrace">
            The method to trace.
            </param>
      <exception cref="T:Neovolve.Toolkit.Instrumentation.TraceSourceLoadException">
            No <see cref="T:System.Diagnostics.TraceSource" /> instance was resolved.
            </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.MemberTrace.#ctor(System.String,System.Reflection.MethodBase,Neovolve.Toolkit.Instrumentation.ITraceSourceResolver)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.MemberTrace" /> class.
            </summary>
      <param name="traceSourceName">
            Name of the trace source.
            </param>
      <param name="methodToTrace">
            The method to trace.
            </param>
      <param name="resolver">
            The resolver.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.MemberTrace.#ctor(System.Diagnostics.TraceSource)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.MemberTrace" /> class.
            </summary>
      <param name="source">
            The trace source.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.MemberTrace.#ctor(System.Diagnostics.TraceSource,System.Reflection.MethodBase)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.MemberTrace" /> class.
            </summary>
      <param name="source">
            The source.
            </param>
      <param name="methodToTrace">
            The method to trace.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.MemberTrace.#ctor(Neovolve.Toolkit.Instrumentation.IActivityWriter)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.MemberTrace" /> class.
            </summary>
      <param name="writer">
            The writer.
            </param>
      <exception cref="T:System.ArgumentNullException">
            The <paramref name="writer" /> parameter is <c>null</c>.
            </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.MemberTrace.#ctor(Neovolve.Toolkit.Instrumentation.IActivityWriter,System.Reflection.MethodBase)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.MemberTrace" /> class.
            </summary>
      <param name="writer">
            The writer.
            </param>
      <param name="methodToTrace">
            The method to trace.
            </param>
      <exception cref="T:System.ArgumentNullException">
            The <paramref name="writer" /> parameter is <c>null</c>.
            </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.MemberTrace.Dispose">
      <summary>
            Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.MemberTrace.Flush">
      <summary>
            Flushes this instance.
            </summary>
      <exception cref="T:System.ObjectDisposedException">
        The
        <see cref="T:Neovolve.Toolkit.Instrumentation.MemberTrace" />
        instance has been disposed and can no longer be used.
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.MemberTrace.ResumeActivity(System.String,System.Object[])">
      <summary>
            Resumes the activity with the specified message.
            </summary>
      <param name="message">
            The message.
            </param>
      <param name="arguments">
            The arguments.
            </param>
      <exception cref="T:System.ObjectDisposedException">
        The
        <see cref="T:Neovolve.Toolkit.Instrumentation.MemberTrace" />
        instance has been disposed and can no longer be used.
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.MemberTrace.Neovolve#Toolkit#Instrumentation#IActivityWriter#StartActivity(System.String,System.Object[])">
      <summary>
            Starts the activity with the specified message.
            </summary>
      <param name="message">
            The message.
            </param>
      <param name="arguments">
            The arguments.
            </param>
      <exception cref="T:System.NotSupportedException">
        Activity boundary trace messages (Start/Stop) are not supported as they are managed internally.
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.MemberTrace.Neovolve#Toolkit#Instrumentation#IActivityWriter#StopActivity(System.String,System.Object[])">
      <summary>
            Stops the activity with the specified message.
            </summary>
      <param name="message">
            The message.
            </param>
      <param name="arguments">
            The arguments.
            </param>
      <exception cref="T:System.NotSupportedException">
        Activity boundary trace messages (Start/Stop) are not supported as they are managed internally.
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.MemberTrace.SuspendActivity(System.String,System.Object[])">
      <summary>
            Suspends the activity with the specified message.
            </summary>
      <param name="message">
            The message.
            </param>
      <param name="arguments">
            The arguments.
            </param>
      <exception cref="T:System.ObjectDisposedException">
        The
        <see cref="T:Neovolve.Toolkit.Instrumentation.MemberTrace" />
        instance has been disposed and can no longer be used.
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.MemberTrace.Write(Neovolve.Toolkit.Instrumentation.RecordType,System.Exception)">
      <summary>
            Writes the specified exception and type.
            </summary>
      <param name="type">
            The type of message.
            </param>
      <param name="exception">
            The exception.
            </param>
      <exception cref="T:System.ObjectDisposedException">
        The
        <see cref="T:Neovolve.Toolkit.Instrumentation.MemberTrace" />
        instance has been disposed and can no longer be used.
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.MemberTrace.Write(Neovolve.Toolkit.Instrumentation.RecordType,System.String,System.Object[])">
      <summary>
            Writes the specified message and type.
            </summary>
      <param name="type">
            The type of message.
            </param>
      <param name="message">
            The message content.
            </param>
      <param name="arguments">
            The arguments related to the message.
            </param>
      <exception cref="T:System.ObjectDisposedException">
        The
        <see cref="T:Neovolve.Toolkit.Instrumentation.MemberTrace" />
        instance has been disposed and can no longer be used.
      </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.MemberTrace.BuildStartMessage(System.Reflection.MethodBase,System.String)">
      <summary>
            Builds the start message.
            </summary>
      <param name="callingMethodDetails">
            The calling method details.
            </param>
      <param name="methodFullName">
            Full name of the method.
            </param>
      <returns>
            A <see cref="T:System.String" /> value.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.MemberTrace.BuildStartMessageFooter">
      <summary>
            Builds the start message footer.
            </summary>
      <returns>
            A <see cref="T:System.String" /> value.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.MemberTrace.GetMethodFullName(System.Reflection.MethodBase)">
      <summary>
            Gets the full name of the method.
            </summary>
      <param name="result">
            The result.
            </param>
      <returns>
            A <see cref="T:System.String" /> value.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.MemberTrace.Initialize(System.String,System.Reflection.MethodBase,Neovolve.Toolkit.Instrumentation.ITraceSourceResolver)">
      <summary>
            Initializes the specified trace source name.
            </summary>
      <param name="traceSourceName">
            Name of the trace source.
            </param>
      <param name="methodToTrace">
            The method to trace.
            </param>
      <param name="resolver">
            The resolver.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.MemberTrace.Initialize(System.Diagnostics.TraceSource,System.Reflection.MethodBase)">
      <summary>
            Initializes the specified source.
            </summary>
      <param name="source">
            The source.
            </param>
      <param name="methodToTrace">
            The method to trace.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.MemberTrace.Initialize(Neovolve.Toolkit.Instrumentation.IActivityWriter,System.Reflection.MethodBase)">
      <summary>
            Initializes the specified writer.
            </summary>
      <param name="writer">
            The writer.
            </param>
      <param name="methodToTrace">
            The method to trace.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.MemberTrace.StartTrace(System.Reflection.MethodBase)">
      <summary>
            Starts the trace.
            </summary>
      <param name="callingMethod">
            The calling method.
            </param>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.MemberTrace.StartMessageFooter">
      <summary>
            Gets or sets the start message footer.
            </summary>
      <value>
            The start message footer.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.MemberTrace.State">
      <summary>
            Gets the state of the activity.
            </summary>
      <value>
            The state of the activity.
            </value>
      <exception cref="T:System.ObjectDisposedException">
        The
        <see cref="T:Neovolve.Toolkit.Instrumentation.MemberTrace" />
        instance has been disposed and can no longer be used.
      </exception>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.MemberTrace.ActivityWriter">
      <summary>
            Gets or sets the activity.
            </summary>
      <value>
            The activity.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.MemberTrace.Disposed">
      <summary>
            Gets or sets a value indicating whether this <see cref="T:Neovolve.Toolkit.Instrumentation.ActivityTrace" /> is disposed.
            </summary>
      <value>
        <c>true</c> if disposed; otherwise, <c>false</c>.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.MemberTrace.MethodFullName">
      <summary>
            Gets or sets the full name of the method.
            </summary>
      <value>
            The full name of the method.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Instrumentation.CallingMethodResolver">
      <summary>
            The <see cref="T:Neovolve.Toolkit.Instrumentation.CallingMethodResolver" />
              class is used to resolve the name of a <see cref="T:System.Diagnostics.TraceSource" />
              based on the <see cref="T:System.Type" /> in user code that directly or indirectly invokes the resolver.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.CallingMethodResolver.#ctor(Neovolve.Toolkit.Instrumentation.ITraceSourceResolver)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.CallingMethodResolver" /> class.
            </summary>
      <param name="resolver">
            The resolver.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.CallingMethodResolver.#ctor(Neovolve.Toolkit.Instrumentation.ITraceSourceResolver,System.Reflection.MethodBase)">
      <summary>
            Initializes a new instance of the <see cref="T:Neovolve.Toolkit.Instrumentation.CallingMethodResolver" /> class.
            </summary>
      <param name="resolver">
            The resolver.
            </param>
      <param name="callingMethod">
            The calling method.
            </param>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.CallingMethodResolver.DetermineCallingMethod">
      <summary>
            Determines the calling method.
            </summary>
      <returns>
            A <see cref="T:System.Reflection.MethodBase" /> instance.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.CallingMethodResolver.Evaluate">
      <summary>
            Evaluates the calling method.
            </summary>
      <returns>
            A <see cref="T:Neovolve.Toolkit.Instrumentation.CallingMethodResult" /> value.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.CallingMethodResolver.Reload">
      <summary>
            Reloads the <see cref="T:System.Diagnostics.TraceSource" /> names and instances available from the resolver.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.CallingMethodResolver.Resolve(System.String,System.StringComparison)">
      <summary>
            Resolves a <see cref="T:System.Diagnostics.TraceSource" /> using the specified name and string comparison.
            </summary>
      <param name="name">
            The name of the <see cref="T:System.Diagnostics.TraceSource" />.
            </param>
      <param name="comparison">
            The string comparison to apply.
            </param>
      <returns>
            A <see cref="T:System.Diagnostics.TraceSource" /> instance or <c>null</c> if the name is not found.
            </returns>
      <requires description="The name value is null, empty or only contains whitespace characters" inheritedFrom="M:Neovolve.Toolkit.Instrumentation.ITraceSourceResolver.Resolve(System.String,System.StringComparison)" inheritedFromTypeName="ITraceSourceResolver" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(name) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(name) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.CallingMethodResolver.ResolveNames">
      <summary>
            Resolves the available <see cref="T:System.Diagnostics.TraceSource" /> names.
            </summary>
      <returns>
            A <see cref="T:System.Collections.ObjectModel.Collection`1" /> instance.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.CallingMethodResolver.Find(Neovolve.Toolkit.Instrumentation.ITraceSourceResolver)">
      <summary>
            Finds a <see cref="T:Neovolve.Toolkit.Instrumentation.CallingMethodResolver" /> resolver in a chain of resolvers.
            </summary>
      <param name="resolver">
            The resolver.
            </param>
      <returns>
            A <see cref="T:Neovolve.Toolkit.Instrumentation.CallingMethodResolver" /> instance.
            </returns>
      <remarks>
            If no <see cref="T:Neovolve.Toolkit.Instrumentation.CallingMethodResolver" /> instance is found in the resolver chain,
              a new instance is returned that wraps the <paramref name="resolver" /> instance.
            </remarks>
      <exception cref="T:System.ArgumentNullException">
            The <paramref name="resolver" /> parameter is <c>null</c>.
            </exception>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.CallingMethodResolver.CheckNameIsValid(System.String,System.Collections.Generic.IEnumerable{System.String})">
      <summary>
            Checks if the provided name is a valid trace source name.
            </summary>
      <param name="traceSourceName">
            Name of the trace source.
            </param>
      <param name="names">
            The names.
            </param>
      <returns>
        <c>true</c> if the specified name is valid; otherwise <c>false</c>.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.CallingMethodResolver.DetectTraceSourceName(System.Type,System.Collections.Generic.IEnumerable{System.String})">
      <summary>
            Detects the name of the trace source.
            </summary>
      <param name="callingType">
            Type of the calling.
            </param>
      <param name="names">
            The names.
            </param>
      <returns>
            The name of a <see cref="T:System.Diagnostics.TraceSource" /> or <see cref="F:System.String.Empty">String.Empty</see> if no appropriate name is available.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.CallingMethodResolver.GetIsTraceableBaseType(System.Type)">
      <summary>
            Gets the type of the is traceable base.
            </summary>
      <param name="frameType">
            Type of the frame.
            </param>
      <returns>
            A <see cref="T:System.Boolean" /> instance.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.CallingMethodResolver.GetIsTraceableModule(System.Type)">
      <summary>
            Gets the is traceable module.
            </summary>
      <param name="frameType">
            Type of the frame.
            </param>
      <returns>
            A <see cref="T:System.Boolean" /> instance.
            </returns>
    </member>
    <member name="M:Neovolve.Toolkit.Instrumentation.CallingMethodResolver.GetIsTraceableType(System.Type)">
      <summary>
            Gets the type of the is traceable.
            </summary>
      <param name="frameType">
            Type of the frame.
            </param>
      <returns>
            A <see cref="T:System.Boolean" /> instance.
            </returns>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.CallingMethodResolver.CallingMethod">
      <summary>
            Gets or sets the calling method.
            </summary>
      <value>
            The calling method.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.CallingMethodResolver.ChildResolver">
      <summary>
            Gets the child resolver.
            </summary>
      <value>
            The child resolver or <c>null</c> if there is no child resolver.
            </value>
    </member>
    <member name="P:Neovolve.Toolkit.Instrumentation.CallingMethodResolver.Result">
      <summary>
            Gets or sets the result.
            </summary>
      <value>
            The result.
            </value>
    </member>
    <member name="T:Neovolve.Toolkit.Storage.CacheStoreExtensions">
      <summary>
              The <see cref="T:Neovolve.Toolkit.Storage.CacheStoreExtensions" />
              class is used to provide extension methods for the <see cref="T:Neovolve.Toolkit.Storage.ICacheStore" /> interface.
            </summary>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.CacheStoreExtensions.GetItem``1(Neovolve.Toolkit.Storage.ICacheStore,System.String)">
      <summary>
              Gets the item.
            </summary>
      <typeparam name="T">The type of item to return.</typeparam>
      <param name="store">The cache store.</param>
      <param name="key">The cache key.</param>
      <returns>
              A <typeparamref name="T" /> instance.
            </returns>
      <requires description="The store value is null." exception="T:System.ArgumentNullException">store != null</requires>
      <exception cref="T:System.ArgumentNullException">store == null</exception>
      <requires description="The key value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(key) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(key) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.CacheStoreExtensions.GetItem``1(Neovolve.Toolkit.Storage.ICacheStore,System.String,System.Func{``0},Neovolve.Toolkit.Storage.IExpirationPolicy[])">
      <summary>
              Gets the item from the cache, adding it as necessary.
            </summary>
      <typeparam name="T">The type of item to return.</typeparam>
      <param name="store">The cache store.</param>
      <param name="key">The cache key.</param>
      <param name="resolver">The resolver function.</param>
      <param name="policySet">The policy set.</param>
      <returns>
              A <typeparamref name="T" /> instance.
            </returns>
      <exception cref="T:System.InvalidCastException">The item stored in the cache is not convertable to <typeparamref name="T" />.</exception>
      <requires description="The store value is null." exception="T:System.ArgumentNullException">store != null</requires>
      <exception cref="T:System.ArgumentNullException">store == null</exception>
      <requires description="The key value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(key) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(key) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.CacheStoreExtensions.GetItem``1(Neovolve.Toolkit.Storage.ICacheStore,System.String,System.Func{``0},System.Func{Neovolve.Toolkit.Storage.IExpirationPolicy[]})">
      <summary>
              Gets the item from the cache, adding it as necessary.
            </summary>
      <typeparam name="T">The type of item to return.</typeparam>
      <param name="store">The cache store.</param>
      <param name="key">The cache key.</param>
      <param name="resolver">The resolver function.</param>
      <param name="expirationPolicies">The expiration policies.</param>
      <returns>
              A <typeparamref name="T" /> instance.
            </returns>
      <exception cref="T:System.InvalidCastException">The item stored in the cache is not convertable to <typeparamref name="T" />.</exception>
      <requires description="The store value is null." exception="T:System.ArgumentNullException">store != null</requires>
      <exception cref="T:System.ArgumentNullException">store == null</exception>
      <requires description="The key value is null, empty or only contains whitespace characters" exception="T:System.ArgumentNullException">
                String.IsNullOrWhiteSpace(key) == false</requires>
      <exception cref="T:System.ArgumentNullException">!(
                String.IsNullOrWhiteSpace(key) == false)</exception>
    </member>
    <member name="M:Neovolve.Toolkit.Storage.CacheStoreExtensions.ConvertToStorageType``1(``0)">
      <summary>
            Converts the type of to storage.
            </summary>
      <typeparam name="T">The type of value being resolved.</typeparam>
      <param name="valueToStore">The value to store.</param>
      <returns>
            A <see cref="T:System.Object" /> instance.
            </returns>
    </member>
  </members>
</doc>